29 #include <XQConversions> |
29 #include <XQConversions> |
30 |
30 |
31 #include "cadef.h" |
31 #include "cadef.h" |
32 #include "cabitmapadapter.h" |
32 #include "cabitmapadapter.h" |
33 |
33 |
34 // ----------------------------------------------------------------------------- |
|
35 // copying compressed bitmap |
|
36 //---------------------------------------------------------------------------- |
|
37 CFbsBitmap *CaBitmapAdapter::copyBitmapLC(CFbsBitmap *input) |
|
38 { |
|
39 CFbsBitmap *bmp = new(ELeave) CFbsBitmap(); |
|
40 CleanupStack::PushL(bmp); |
|
41 bmp->Create(input->SizeInPixels(), input->DisplayMode()); |
|
42 |
|
43 CFbsBitmapDevice *bitmapDevice = CFbsBitmapDevice::NewL(bmp); |
|
44 CleanupStack::PushL(bitmapDevice); |
|
45 CFbsBitGc *bmpGc; |
|
46 bitmapDevice->CreateContext(bmpGc); |
|
47 bmpGc->BitBlt(TPoint(0,0), input); |
|
48 delete bmpGc; |
|
49 CleanupStack::PopAndDestroy(bitmapDevice); |
|
50 return bmp; |
|
51 } |
|
52 |
|
53 void CaBitmapAdapter::fromBitmapAndMaskToPixmapL(CFbsBitmap* fbsBitmap, |
34 void CaBitmapAdapter::fromBitmapAndMaskToPixmapL(CFbsBitmap* fbsBitmap, |
54 CFbsBitmap* fbsMask, QPixmap& pixmap) |
35 CFbsBitmap* fbsMask, QPixmap& pixmap) |
55 { |
36 { |
56 if (fbsBitmap->Header().iCompression == ENoBitmapCompression) { |
37 pixmap = pixmap.fromSymbianCFbsBitmap(fbsBitmap); |
57 pixmap = pixmap.fromSymbianCFbsBitmap(fbsBitmap); |
38 QPixmap mask; |
58 QPixmap mask; |
39 mask = mask.fromSymbianCFbsBitmap(fbsMask); |
59 mask = mask.fromSymbianCFbsBitmap(fbsMask); |
40 pixmap.setAlphaChannel(mask); |
60 pixmap.setAlphaChannel(mask); |
|
61 } else { // we need special handling for icons in 9.2 (NGA) |
|
62 // let's hope that in future it will be in QT code |
|
63 CFbsBitmap *temp(NULL); |
|
64 temp = CaBitmapAdapter::copyBitmapLC(fbsBitmap); |
|
65 pixmap = pixmap.fromSymbianCFbsBitmap(temp); |
|
66 CleanupStack::PopAndDestroy(); |
|
67 temp = CaBitmapAdapter::copyBitmapLC(fbsMask); |
|
68 QPixmap mask; |
|
69 mask = mask.fromSymbianCFbsBitmap(temp); |
|
70 CleanupStack::PopAndDestroy(); |
|
71 pixmap.setAlphaChannel(mask); |
|
72 } |
|
73 } |
41 } |