Index: vcl/aqua/source/gdi/salnativewidgets.cxx =================================================================== RCS file: /cvs/gsl/vcl/aqua/source/gdi/Attic/salnativewidgets.cxx,v retrieving revision 1.1.2.32 diff -u -r1.1.2.32 salnativewidgets.cxx --- vcl/aqua/source/gdi/salnativewidgets.cxx 17 May 2007 08:51:36 -0000 1.1.2.32 +++ vcl/aqua/source/gdi/salnativewidgets.cxx 17 May 2007 16:07:08 -0000 @@ -174,6 +174,42 @@ } +// Helper returns an HIRect + +HIRect ImplGetHIRectFromRectangle(Rectangle aRect) +{ + HIRect aHIRect; + aHIRect.origin.x = static_cast(aRect.Left()); + aHIRect.origin.y = static_cast(aRect.Top()); + aHIRect.size.width = static_cast(aRect.Right()) - static_cast(aRect.Left()); + aHIRect.size.height = static_cast(aRect.Bottom()) - static_cast(aRect.Top()); + return aHIRect; +} + +// Helper returns a Rectangle + +Rectangle ImplGetRectangleFromHIRect( HIRect aHIRect ) +{ + Rectangle aRect; + aRect.Top() = static_cast(aHIRect.origin.y); + aRect.Left() = static_cast(aHIRect.origin.x); + aRect.Bottom() = static_cast(aHIRect.size.height) + static_cast(aHIRect.origin.y); + aRect.Right() = static_cast(aHIRect.origin.x) + static_cast(aHIRect.size.width); + return aRect; +} + +// Helper returns a QD Rect + +Rect ImplGetRectFromHIRect(HIRect aHIRect) +{ + Rect aRect; + aRect.top = static_cast(aHIRect.origin.y); + aRect.left = static_cast(aHIRect.origin.x); + aRect.right= static_cast(aHIRect.origin.x) + static_cast(aHIRect.size.width); + aRect.bottom = static_cast(aHIRect.size.height) + static_cast(aHIRect.origin.y); + return aRect; +} + /* * IsNativeControlSupported() * -------------------------- @@ -255,7 +291,7 @@ if( nPart == PART_ENTIRE_CONTROL || nPart == PART_TABS_DRAW_RTL || nPart == HAS_BACKGROUND_TEXTURE ) - return false; + return true; break; case CTRL_TOOLBAR: // ** TO DO + CHECK IF NEEDED ** @@ -472,15 +508,9 @@ { fprintf(stderr, "%s (%s, %s)\n", __func__, ImplDbgGetStringControlType(nType), ImplDbgGetStringControlPart(nPart)); BOOL bOk = FALSE; - - Rectangle buttonRect = rControlRegion.GetBoundRect(); - - HIRect rc; - rc.origin.x = static_cast(buttonRect.Left()); - rc.origin.y = static_cast(buttonRect.Top()); - rc.size.width = static_cast(buttonRect.Right()) - static_cast(buttonRect.Left()); - rc.size.height = static_cast(buttonRect.Bottom()) - static_cast(buttonRect.Top()); - + + HIRect rc = ImplGetHIRectFromRectangle( rControlRegion.GetBoundRect() ); + /** Scrollbar parts code equivalent ** PART_BUTTON_UP 101 PART_BUTTON_DOWN 102 @@ -494,6 +524,46 @@ switch( nType ) { + case CTRL_TOOLTIP: + + /* + HMHelpContentRec (Declared in MacHelp.h ) + + Describes a help tag. + + struct HMHelpContentRec { + SInt32 version; + Rect absHotRect; + HMTagDisplaySide tagSide; + HMHelpContent content[2]; + }; + typedef struct HMHelpContentRec HMHelpContentRec; + */ + + HMHelpContent aContent; + aContent.contentType = kHMTextResContent;//kHMCFStringContent; + aContent.u.tagTextRes = NULL;//kHMCFStringContent; + + HMHelpContentRec aHelpContentRect; + + aHelpContentRect.version = 0; + aHelpContentRect.absHotRect = ImplGetRectFromHIRect(rc); + aHelpContentRect.tagSide = kHMOutsideBottomCenterAligned; + aHelpContentRect.content[2]= aContent ; + + HMSetTagDelay ( 100 ); + + if( BeginGraphics() ) + { + HMDisplayTag (&aHelpContentRect ); + EndGraphics(); + return true; + } + else + return false; + + break; + // [FIXME] wait for clipping before to add the new controls below //case CTRL_FIXEDBORDER: //case CTRL_TAB_PANE: