16 */ |
16 */ |
17 |
17 |
18 |
18 |
19 // INCLUDE FILES |
19 // INCLUDE FILES |
20 #include "ccappheaders.h" |
20 #include "ccappheaders.h" |
|
21 #include "ccappcommlauncherpluginuids.hrh" |
|
22 #include "ccappdetailsviewpluginuids.hrh" |
21 #include <aknlayoutscalable_avkon.cdl.h> |
23 #include <aknlayoutscalable_avkon.cdl.h> |
|
24 |
22 |
25 |
23 // ======== MEMBER FUNCTIONS ======== |
26 // ======== MEMBER FUNCTIONS ======== |
24 |
27 |
25 // --------------------------------------------------------------------------- |
28 // --------------------------------------------------------------------------- |
26 // CCCAppStatusPaneHandler::CCCAppStatusPaneHandler |
29 // CCCAppStatusPaneHandler::CCCAppStatusPaneHandler |
188 void CCCAppStatusPaneHandler::AddBitmapsL( TInt aPlugin ) |
191 void CCCAppStatusPaneHandler::AddBitmapsL( TInt aPlugin ) |
189 { |
192 { |
190 CCCAppPluginData* data = iView.PluginLoader().PluginAt( aPlugin ); |
193 CCCAppPluginData* data = iView.PluginLoader().PluginAt( aPlugin ); |
191 //Bitmaps provided |
194 //Bitmaps provided |
192 |
195 |
193 if( !iView.PluginLoader().PluginAt( aPlugin )->iPluginBitmap ) |
196 if( !data->iPluginBitmap ) |
194 { |
197 { |
195 CAknIcon* icon = CAknIcon::NewL(); |
198 CAknIcon* icon = CAknIcon::NewL(); |
196 CleanupStack::PushL( icon ); |
199 CleanupStack::PushL( icon ); |
197 iView.PluginLoader().PluginAt( aPlugin )->Plugin().ProvideBitmapL( |
200 iView.PluginLoader().PluginAt( aPlugin )->Plugin().ProvideBitmapL( |
198 CCCAppViewPluginBase::ECCAppTabIcon, *icon ); |
201 CCCAppViewPluginBase::ECCAppTabIcon, *icon ); |
199 data->iPluginBitmap = icon->Bitmap(); |
202 data->iPluginBitmap = icon->Bitmap(); |
200 data->iPluginBitmapMask = icon->Mask(); |
203 data->iPluginBitmapMask = icon->Mask(); |
201 |
204 |
202 // Disable compression to check icon color scheme later |
|
203 AknIconUtils::DisableCompression( data->iPluginBitmap ); |
|
204 |
|
205 //Calculate preferred size for icons |
205 //Calculate preferred size for icons |
206 TRect mainPane; |
206 TRect mainPane; |
207 AknLayoutUtils::LayoutMetricsRect( |
207 AknLayoutUtils::LayoutMetricsRect( |
208 AknLayoutUtils::EMainPane, mainPane ); |
208 AknLayoutUtils::EMainPane, mainPane ); |
209 TAknLayoutRect naviIconRect; |
209 TAknLayoutRect naviIconRect; |
212 AknLayoutScalable_Avkon::navi_navi_icon_text_pane_g1() ); |
212 AknLayoutScalable_Avkon::navi_navi_icon_text_pane_g1() ); |
213 TSize size(naviIconRect.Rect().Size()); |
213 TSize size(naviIconRect.Rect().Size()); |
214 |
214 |
215 AknIconUtils::SetSize( data->iPluginBitmap, size ); |
215 AknIconUtils::SetSize( data->iPluginBitmap, size ); |
216 AknIconUtils::SetSize( data->iPluginBitmapMask, size ); |
216 AknIconUtils::SetSize( data->iPluginBitmapMask, size ); |
|
217 |
217 icon->SetBitmap( NULL ); |
218 icon->SetBitmap( NULL ); |
218 icon->SetMask( NULL ); |
219 icon->SetMask( NULL ); |
219 CleanupStack::PopAndDestroy( icon ); |
220 CleanupStack::PopAndDestroy( icon ); |
220 } |
221 } |
221 |
222 |
229 // |
230 // |
230 void CCCAppStatusPaneHandler::AddTabL( TInt aPlugin ) |
231 void CCCAppStatusPaneHandler::AddTabL( TInt aPlugin ) |
231 { |
232 { |
232 CCCAppPluginData* data = iView.PluginLoader().PluginAt( aPlugin ); |
233 CCCAppPluginData* data = iView.PluginLoader().PluginAt( aPlugin ); |
233 |
234 |
234 if(iTabGroupRef && iView.PluginLoader().PluginAt( aPlugin )->PluginVisibility() == 1) |
235 if(iTabGroupRef && data->PluginVisibility() == 1) |
235 { |
236 { |
236 if(data->iPluginBitmap) |
237 if(data->iPluginBitmap) |
237 { |
238 { |
238 //Tabgroup takes ownership of duplicated bitmap handles |
239 //Tabgroup takes ownership of duplicated bitmap handles |
239 CFbsBitmap* bmp = new( ELeave ) CFbsBitmap(); |
240 CFbsBitmap* bmp = new( ELeave ) CFbsBitmap(); |
242 CleanupStack::PushL(bmpMask); |
243 CleanupStack::PushL(bmpMask); |
243 |
244 |
244 bmp->Duplicate(data->iPluginBitmap->Handle()); |
245 bmp->Duplicate(data->iPluginBitmap->Handle()); |
245 bmpMask->Duplicate(data->iPluginBitmapMask->Handle()); |
246 bmpMask->Duplicate(data->iPluginBitmapMask->Handle()); |
246 iTabGroupRef->AddTabL( aPlugin, bmp, bmpMask ); |
247 iTabGroupRef->AddTabL( aPlugin, bmp, bmpMask ); |
247 CleanupStack::Pop(2); //bmp, bmpmask |
248 CleanupStack::Pop(2); //bmp, bmpmask |
248 |
249 |
249 SEpocBitmapHeader header = bmp->Header(); |
250 // CCA-Launcher and Details-View icons are GrayScale, but are detected as with color. |
250 if ( SEpocBitmapHeader::ENoColor != header.iColor ) |
251 // They shall display dark on clear background and clear on dark background. |
|
252 // SetTabMultiColorMode disables color inversion therefore it does not have to be |
|
253 // called for those tabs. |
|
254 TUid pluginUid = data->Plugin().Id(); |
|
255 if (pluginUid != TUid::Uid(KCCACommLauncherPluginImplmentationUid) && |
|
256 pluginUid != TUid::Uid(KCCADetailsViewPluginImplmentationUid)) |
251 { |
257 { |
252 iTabGroupRef->SetTabMultiColorMode( aPlugin, ETrue ); |
258 iTabGroupRef->SetTabMultiColorMode( aPlugin, ETrue ); |
253 } |
259 } |
254 } |
260 } |
255 else |
261 else |