841 } |
841 } |
842 |
842 |
843 TRect boundingRect(TPoint(0,0),TSize(w,h)); |
843 TRect boundingRect(TPoint(0,0),TSize(w,h)); |
844 |
844 |
845 //mask |
845 //mask |
846 iToolTipMask = new (ELeave) CFbsBitmap; |
846 TRAP( err, |
847 User::LeaveIfError( iToolTipMask->Create( TSize(w,h), EColor16MA ) ); |
847 { |
848 iToolTipMaskDevice = CFbsBitmapDevice::NewL( iToolTipMask ); |
848 iToolTipMask = new (ELeave) CFbsBitmap; |
849 User::LeaveIfError( iToolTipMaskDevice->CreateContext( iToolTipMaskContext ) ); |
849 if(KErrNone == iToolTipMask->Create( TSize(w,h), EColor16MA )) |
850 iToolTipMaskContext->SetPenColor(KRgbBlack); |
850 { |
851 iToolTipMaskContext->SetBrushColor(KRgbBlack); |
851 iToolTipMaskDevice = CFbsBitmapDevice::NewL( iToolTipMask ); |
852 iToolTipMaskContext->SetBrushStyle(CGraphicsContext::ESolidBrush); |
852 User::LeaveIfError( iToolTipMaskDevice->CreateContext( iToolTipMaskContext ) ); |
853 iToolTipMaskContext->SetPenStyle(CGraphicsContext::ESolidPen); |
853 } |
854 iToolTipMaskContext->DrawRoundRect(boundingRect,TSize(4,4)); |
854 } |
855 |
855 ); |
856 //bitmap |
856 if( KErrNone != err) |
857 iToolTipBitmap = new (ELeave) CFbsBitmap; |
857 { |
858 User::LeaveIfError( iToolTipBitmap->Create( TSize(w,h), EColor16MA ) ); |
858 delete iToolTipMask; |
859 iToolTipBitmapDevice = CFbsBitmapDevice::NewL( iToolTipBitmap ); |
859 iToolTipMask = NULL; |
860 User::LeaveIfError( iToolTipBitmapDevice->CreateContext( iToolTipBitmapContext ) ); |
860 delete iToolTipMaskDevice; |
861 iToolTipBitmapContext->SetPenColor(KRgbBlack); |
861 iToolTipMaskDevice = NULL; |
862 iToolTipBitmapContext->SetBrushColor(TRgb(0xfa,0xfa,0xd2)); |
862 } |
863 iToolTipBitmapContext->SetBrushStyle(CGraphicsContext::ESolidBrush); |
863 else |
864 iToolTipBitmapContext->SetPenStyle(CGraphicsContext::ESolidPen); |
864 { |
865 iToolTipBitmapContext->DrawRoundRect(boundingRect,TSize(4,4)); |
865 iToolTipMaskContext->SetPenColor(KRgbBlack); |
866 |
866 iToolTipMaskContext->SetBrushColor(KRgbBlack); |
867 //add text |
867 iToolTipMaskContext->SetBrushStyle(CGraphicsContext::ESolidBrush); |
868 iToolTipBitmapContext->SetPenColor(KRgbBlack); |
868 iToolTipMaskContext->SetPenStyle(CGraphicsContext::ESolidPen); |
869 iToolTipBitmapContext->SetBrushStyle(CGraphicsContext::ENullBrush); |
869 iToolTipMaskContext->DrawRoundRect(boundingRect,TSize(4,4)); |
870 |
870 |
871 iToolTipBitmapContext->UseFont(myFont); |
871 //bitmap |
872 TPoint pt = boundingRect.iTl; |
872 TRAP( err, |
873 pt += TPoint(KToolTipBorder + KTextMargin,KToolTipBorder + KTextMargin); |
873 { |
874 iToolTipBitmapContext->DrawText(*visualText, |
874 iToolTipBitmap = new (ELeave) CFbsBitmap; |
|
875 if( KErrNone == iToolTipBitmap->Create( TSize(w,h), EColor16MA )) |
|
876 { |
|
877 iToolTipBitmapDevice = CFbsBitmapDevice::NewL( iToolTipBitmap ); |
|
878 User::LeaveIfError( iToolTipBitmapDevice->CreateContext( iToolTipBitmapContext ) ); |
|
879 } |
|
880 } |
|
881 ); |
|
882 if( KErrNone != err ) |
|
883 { |
|
884 delete iToolTipBitmap; |
|
885 iToolTipBitmap = NULL; |
|
886 delete iToolTipBitmapDevice; |
|
887 iToolTipBitmapDevice = NULL; |
|
888 } |
|
889 else |
|
890 { |
|
891 iToolTipBitmapContext->SetPenColor(KRgbBlack); |
|
892 iToolTipBitmapContext->SetBrushColor(TRgb(0xfa,0xfa,0xd2)); |
|
893 iToolTipBitmapContext->SetBrushStyle(CGraphicsContext::ESolidBrush); |
|
894 iToolTipBitmapContext->SetPenStyle(CGraphicsContext::ESolidPen); |
|
895 iToolTipBitmapContext->DrawRoundRect(boundingRect,TSize(4,4)); |
|
896 |
|
897 //add text |
|
898 iToolTipBitmapContext->SetPenColor(KRgbBlack); |
|
899 iToolTipBitmapContext->SetBrushStyle(CGraphicsContext::ENullBrush); |
|
900 |
|
901 iToolTipBitmapContext->UseFont(myFont); |
|
902 TPoint pt = boundingRect.iTl; |
|
903 pt += TPoint(KToolTipBorder + KTextMargin,KToolTipBorder + KTextMargin); |
|
904 iToolTipBitmapContext->DrawText(*visualText, |
875 TPoint(pt.iX,pt.iY + myFont->AscentInPixels())); |
905 TPoint(pt.iX,pt.iY + myFont->AscentInPixels())); |
876 iToolTipBitmapContext->DiscardFont(); |
906 iToolTipBitmapContext->DiscardFont(); |
877 |
907 |
878 CCoeControl& view = iParent->ToolBarCallback().View(); |
908 CCoeControl& view = iParent->ToolBarCallback().View(); |
879 |
909 |
880 iToolTipSprite = RWsSprite(view.ControlEnv()->WsSession()); |
910 iToolTipSprite = RWsSprite(view.ControlEnv()->WsSession()); |
881 RWindowTreeNode *window = (RDrawableWindow* )iParent->ToolBarCallback().CCoeControlParent().DrawableWindow(); |
911 RWindowTreeNode *window = (RDrawableWindow* )iParent->ToolBarCallback().CCoeControlParent().DrawableWindow(); |
882 iToolTipSprite.Construct(*window,p, ESpriteNoChildClip); |
912 iToolTipSprite.Construct(*window,p, ESpriteNoChildClip); |
883 |
913 |
884 TSpriteMember spriteMem; |
914 TSpriteMember spriteMem; |
885 spriteMem.iBitmap = iToolTipBitmap; |
915 spriteMem.iBitmap = iToolTipBitmap; |
886 spriteMem.iMaskBitmap = iToolTipMask; |
916 spriteMem.iMaskBitmap = iToolTipMask; |
887 spriteMem.iInvertMask = ETrue; |
917 spriteMem.iInvertMask = ETrue; |
888 |
918 |
889 iToolTipSprite.AppendMember(spriteMem); |
919 iToolTipSprite.AppendMember(spriteMem); |
890 iToolTipSprite.Activate(); |
920 iToolTipSprite.Activate(); |
891 delete visualText;//visual text |
921 delete visualText;//visual text |
892 |
922 } |
|
923 } |
893 } |
924 } |
894 else // aVisible = false |
925 else // aVisible = false |
895 { |
926 { |
896 iToolTipSprite.Close(); |
927 iToolTipSprite.Close(); |
897 } |
928 } |