Create colorful icon

.h 文件:


#include <coecntrl.h>       
#include <akniconutils.h>
#include <gulicon.h>
#include <eiklbo.h>

class MEikCommandObserver;       
class CAknSingleGraphicStyleListBox;
class CEikTextListBox;

class CTestContainer : public CCoeControl

{

......

private:
    CAknSingleGraphicStyleListBox* iListBox;

......

}

.cpp 文件

......

#include <avkon.mbg> //For EMbmAvkonQgn_indi_checkbox_on/off and EMbmAvkonQgn_indi_checkbox_on/off_mask
#include <aknconsts.h> //For KAknsIIDQgnPropCheckboxOn and KAknsIIDQgnPropCheckboxOff

void CTestContainer::InitializeControlsL()
    {
    iListBox = new ( ELeave ) CAknSingleGraphicStyleListBox;
   
    // Construct listbox  
    TInt markable = ( EAknListBoxMarkableList |

                 EAknListBoxMultiselectionList    |
                 CEikListBox::EMultipleSelection |
                 CEikListBox::ES60StyleMultiselection |
                 CEikListBox::ES60StyleMarkable );
   
         iListBox->ConstructL( this, markable | EAknListBoxLoopScrolling );   
         iListBox->SetContainerWindowL( *this );

         // Set scrollbars
         iListBox->CreateScrollBarFrameL( ETrue );
         iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOn, CEikScrollBarFrame::EAuto );   

         // Create listbox item array
         CDesCArrayFlat* iListBoxItems = new (ELeave) CDesCArrayFlat(4);
         // Create listbox items
        iListBoxItems->AppendL( _L("1/tItem1") );
        iListBoxItems->AppendL( _L("1/tItem2") );
        iListBoxItems->AppendL( _L("1/tItem3") );

         // Add items to listbox
         iListBox->Model()->SetItemTextArray( iListBoxItems );


         // Listbox deletes the item array
         iListBox->Model()->SetOwnershipType( ELbmOwnsItemArray );

         iListBox->HandleItemAdditionL( ); 

         // Add icons to listbox
         SetupListBoxIconsL();

         // Activate Listbox
         iListBox->SetRect( Rect() );
         iListBox->ActivateL();   
       
         iListBox->SetFocus( ETrue );
         iFocusControl = iListBox;
   
    }

void CTestContainer::SetupListBoxIconsL()
    {

    CAknIconArray* iconArray = new( ELeave ) CAknIconArray( 3 );
    CleanupStack::PushL( iconArray );
    CFbsBitmap* checkboxOnBitmap = NULL;
    CFbsBitmap* checkboxOnBitmapMask = NULL;
    CFbsBitmap* checkboxOffBitmap = NULL;
    CFbsBitmap* checkboxOffBitmapMask = NULL;

    //CListItemDrawer is using this logical color as default for its marked icons
    TRgb defaultColor;
    defaultColor = CEikonEnv::Static()->Color( EColorControlText );

    AknsUtils::CreateColorIconLC( AknsUtils::SkinInstance(),
                    KAknsIIDQgnPropCheckboxOn,
                    KAknsIIDQsnIconColors,
                    EAknsCIQsnIconColorsCG13,
                    checkboxOnBitmap,
                    checkboxOnBitmapMask,
                    KAvkonBitmapFile,
                    EMbmAvkonQgn_indi_checkbox_on, 
                    EMbmAvkonQgn_indi_checkbox_on_mask,
                    defaultColor
                    );              

    CGulIcon* checkboxOnIcon = CGulIcon::NewL( checkboxOnBitmap, checkboxOnBitmapMask );
    CleanupStack::Pop( 2 ); // checkboxOnBitmap, checkboxOnBitmapMask
    CleanupStack::PushL( checkboxOnIcon );
    iconArray->AppendL( checkboxOnIcon );

 

    AknsUtils::CreateColorIconLC( AknsUtils::SkinInstance(),
                    KAknsIIDQgnPropCheckboxOff,
                    KAknsIIDQsnIconColors,
                    EAknsCIQsnIconColorsCG13,
                    checkboxOffBitmap,
                    checkboxOffBitmapMask,
                    KAvkonBitmapFile,
                    EMbmAvkonQgn_indi_checkbox_off, 

                    EMbmAvkonQgn_indi_checkbox_off_mask,
                    defaultColor
                    );

    CGulIcon* checkboxOffIcon = CGulIcon::NewL( checkboxOffBitmap, checkboxOffBitmapMask );
    CleanupStack::Pop( 2 ); // checkboxOffBitmap, checkboxOffBitmapMask
    CleanupStack::PushL( checkboxOffIcon );
    iconArray->AppendL( checkboxOffIcon );           

    iListBox->ItemDrawer()->ColumnData()->SetIconArray( iconArray );       

    // checkboxOffIcon, checkboxOnIcon, iconArray
    CleanupStack::Pop( 3 );

    }


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值