예제 #1
0
EXPORT_C CFbsBitmap* AknsUtils::CreateBitmapL(
    MAknsSkinInstance* aInstance, const TAknsItemID& aID )
    {
    CFbsBitmap* bitmap = NULL;
    CreateIconL( aInstance, aID, bitmap, KNullDesC, -1 );

    return bitmap;
    }
예제 #2
0
void CAknInputFrame::HandleResourceChange( TInt aType )
    {
    CCoeControl::HandleResourceChange( aType );
    switch ( aType )
        {
        case KAknsMessageSkinChange:
        case KEikDynamicLayoutVariantSwitch:
            CreateIconL();
            break;
            
        default:
            break;
        }
    }
예제 #3
0
// -----------------------------------------------------------------------------
// AknsUtils::GetAppIconFromSkin
// -----------------------------------------------------------------------------
//
TInt AknsUtils::GetAppIconFromSkin(
    MAknsSkinInstance* aInstance, TUid aAppUid, TSize aSize,
    CFbsBitmap*& aBitmap, CFbsBitmap*& aMask )
    {
    if( !aInstance )
        {
        return KErrNotSupported;
        }

    TAknsItemID iid;
    iid.Set( EAknsMajorAppIcon, aAppUid.iUid );

    TInt err( KErrNone );
    TAknsItemID iconIID;
    TRAP( err, ( iconIID = SelectBestAppIconBitmapL(
        aSize, aInstance, iid ) ) );
    if( err )
        {
        return err;
        }

    CFbsBitmap* bitmap = NULL;
    CFbsBitmap* mask = NULL;
    TRAPD( createErr,
        CreateIconL( aInstance, iconIID, bitmap, mask, KNullDesC, -1, -1 ) ); //lint !e645 Initialized

    if( createErr )
        {
        delete bitmap;
        delete mask;
        return createErr;
        }

    __ASSERT_DEBUG( bitmap && mask,
        AKNS_DEBUG_PANIC( EAknsDPanicNotInitialized ) );

	AknInternalIconUtils::SetAppIcon(aBitmap); //icon case
    aBitmap = bitmap;
    aMask = mask;

    return KErrNone;
    } //lint !e1746 GetAppIcon syntax
예제 #4
0
/*
 * Landmark objects will make use of an SVG file for rendering (demo purposes)
 */
void CLMXObject::ConstructL()
{
    _LIT(KIconFile, "\\resource\\apps\\Landmarks_0x2002E1AF.mif");

    CGulIcon* icon = CreateIconL(KIconFile, EMbmLandmarks_0x2002e1afIcon, EMbmLandmarks_0x2002e1afIcon_mask);
    CleanupStack::PushL(icon);

    CFbsBitmap* bitmap = icon->Bitmap();    // Ownership NOT transferred
    CFbsBitmap* mask   = icon->Mask();      // Ownership NOT transferred

    // Always expect 16M bitmap to make conversion to GL_RGBA easier 
    if (bitmap->DisplayMode() != EColor16M)
    {
        bitmap = new(ELeave) CFbsBitmap;
        CleanupStack::PushL(bitmap);

        User::LeaveIfError(bitmap->Create(icon->Bitmap()->SizeInPixels(), EColor16M));

        CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL(bitmap);
        CleanupStack::PushL(bitmapDevice);

        CFbsBitGc* bitmapContext = 0;
        User::LeaveIfError(bitmapDevice->CreateContext(bitmapContext));
        CleanupStack::PushL(bitmapContext);

        bitmapContext->BitBlt(TPoint(0, 0), icon->Bitmap());

        CleanupStack::PopAndDestroy(2, bitmapDevice);

        icon->SetBitmap(bitmap);    // Ownership transferred

        CleanupStack::Pop(bitmap);
    }

    // Always expect 256 mask to make conversion to GL_RGBA easier 
    if (mask->DisplayMode() != EGray256)
    {
        mask = new(ELeave) CFbsBitmap;
        CleanupStack::PushL(mask);

        User::LeaveIfError(mask->Create(icon->Mask()->SizeInPixels(), EGray256));

        CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL(mask);
        CleanupStack::PushL(bitmapDevice);

        CFbsBitGc* bitmapContext = 0;
        User::LeaveIfError(bitmapDevice->CreateContext(bitmapContext));
        CleanupStack::PushL(bitmapContext);

        bitmapContext->BitBlt(TPoint(0, 0), icon->Mask());

        CleanupStack::PopAndDestroy(2, bitmapDevice);

        icon->SetMask(mask);    // Ownership transferred

        CleanupStack::Pop(mask);
    }

    // Now bitmap and mask point to either original or converted bitmaps, 
    // and ownership belongs to icon

    const TSize bitmapSize = bitmap->SizeInPixels();

    // sizeof(TUint32) == sizeof(RGBA)
    const TInt dataSize = bitmapSize.iWidth * bitmapSize.iHeight * sizeof(TUint32);
    TUint8* data = new(ELeave) TUint8[dataSize];

    // Perform copy and conversion from BGR(A) to RGB(A)
    bitmap->LockHeap();
    mask->LockHeap();

    // TODO: Alpha component removed, as it seems to be corrupted from
    // subsequent reads from SVG file

    TUint8* rgb = reinterpret_cast<TUint8*>(bitmap->DataAddress());
//    TUint8* alpha = reinterpret_cast<TUint8*>(mask->DataAddress());

    for(TInt i = 0, j = 0; i < dataSize; i += 4, j += 3)
    {
        data[i + 0] = rgb[j + 2];
        data[i + 1] = rgb[j + 1];
        data[i + 2] = rgb[j + 0];
        data[i + 3] = 0xc0; //alpha[i / 4];
    }

    // Generate OpenGL texture
    ::glGenTextures(1, &iTextureId); 
    ::glBindTexture(GL_TEXTURE_2D, iTextureId);

    ::glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    ::glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    ::glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    ::glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

    ::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, bitmapSize.iWidth, bitmapSize.iHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);

    mask->UnlockHeap();
    bitmap->UnlockHeap();

    delete data;

    CleanupStack::PopAndDestroy(icon);
}
예제 #5
0
void CBCTestButtonCase::TestAknButtonUtiL()
    {

    _LIT( strConstructL,
          "Class CAknButton function ConstructL( CGulIcon... ) invoked" );
    CAknButtonEx* aknbtn = new( ELeave ) CAknButtonEx( KOne );
    CleanupStack::PushL( aknbtn );
    aknbtn->ConstructL( CreateIconL(), CreateIconL(),
                        CreateIconL(), CreateIconL(),
                        strOK, strHelp, KOne );
    AssertNotNullL( aknbtn, strConstructL );
    aknbtn->SetContainerWindowL( *iContainer );

    _LIT( strSetTooltipPosition,
          "Class CAknButton function SetTooltipPosition invoked" );
    aknbtn->SetTooltipPosition( CAknButton::EPositionTop );
    AssertTrueL( ETrue, strSetTooltipPosition );

    _LIT( strSetRequestExit,
          "Class CAknButton function SetTooltipPosition invoked" );
    aknbtn->SetRequestExit( ETrue );
    AssertTrueL( ETrue, strSetRequestExit );

    _LIT( strIsDimmed, "Class CAknButton function IsDimmed invoked" );
    aknbtn->IsDimmed();
    AssertTrueL( ETrue, strIsDimmed );

    _LIT( strSetDimmedHelpTextL,
          "Class CAknButton function SetDimmedHelpTextL invoked" );
    aknbtn->SetDimmedHelpTextL( strHelp );
    AssertTrueL( ETrue, strSetDimmedHelpTextL );


    _LIT( strState, "Class CAknButton function State invoked" );
    CAknButtonState* aknbst = aknbtn->State();
    AssertNotNullL( aknbst, strState );
    aknbst = NULL;

    _LIT( strStatePr, "Class CAknButton function State( TInt ) invoked" );
    aknbst = aknbtn->State( KZero );
    AssertNotNullL( aknbst, strStatePr );

    _LIT( strButtonFlags, "Class CAknButton function ButtonFlags invoked" );
    aknbtn->ButtonFlags();
    AssertTrueL( ETrue, strButtonFlags );

    TMargins8 margin;
    margin.iLeft = KLeft;
    margin.iRight = KRight;
    margin.iBottom = KBottom;
    margin.iTop = KTop;
    _LIT( strSetMargins, "Class CAknButton function SetMargins invoked" );
    aknbtn->SetMargins( margin );
    AssertTrueL( ETrue, strSetMargins );

    TSize size( KRight, KBottom );
    _LIT( strSetIconSize, "Class CAknButton function SetIconSize invoked" );
    aknbtn->SetIconSize( size );
    AssertTrueL( ETrue, strSetIconSize );

    _LIT( KResetState, "Class CAknButton function ResetState invoked" );
    aknbtn->ResetState();
    AssertTrueL( ETrue, KResetState );
    
   _LIT(KPositionChanged,"Class CAknButton function PositionChanged invoked");
    aknbtn->PositionChanged();
    AssertTrueL( ETrue, KPositionChanged );
    
    _LIT( strSizeChanged, "Class CAknButton function SizeChanged invoked" );
    aknbtn->SizeChanged();
    AssertTrueL( ETrue, strSizeChanged );

    _LIT( strFocusChanged,
          "Class CAknButton function FocusChanged invoked" );
    aknbtn->FocusChanged( EDrawNow );
    AssertTrueL( ETrue, strFocusChanged );

    _LIT( strExtensionInterface,
          "Class CAknButton function ExtensionInterface invoked" );
    TUid uid = TUid::Uid( KZero );
    aknbtn->ExtensionInterface( uid );
    AssertTrueL( ETrue, strExtensionInterface );


    _LIT( strChangeState, "Class CAknButton function ChangeState invoked" );
    aknbtn->ChangeState( ETrue );
    AssertTrueL( ETrue, strChangeState );

    _LIT( strGetCurrentText,
          "Class CAknButton function GetCurrentText invoked" );
    TDesC tdText = aknbtn->GetCurrentText();
    AssertTrueL( ETrue, strGetCurrentText );

    _LIT( strGetCurrentIcon,
          "Class CAknButton function GetCurrentIcon invoked" );
    const CGulIcon* icon = aknbtn->GetCurrentIcon();
    AssertNotNullL( const_cast< CGulIcon* >( icon ), strGetCurrentIcon );

    aknbtn->SetContainerWindowL( *iContainer );
    aknbtn->SetDimmed( EFalse );
    _LIT( strShowHelpL, "Class CAknButton function ShowHelpL invoked" );
    aknbtn->ShowHelpL();
    AssertTrueL( ETrue, strShowHelpL );

    _LIT( strHideHelp, "Class CAknButton function HideHelp invoked" );
    aknbtn->HideHelp();
    AssertTrueL( ETrue, strHideHelp );

    CleanupStack::PopAndDestroy();
    aknbtn = NULL;

    }
예제 #6
0
void CBCTestButtonCase::TestAknButtonProL()
    {

    _LIT( strConstructProL,
          "Class CAknButton function ConstructL( const TDesC... ) invoked" );
    CAknButtonEx* aknbtn = new( ELeave ) CAknButtonEx( KOne );
    CleanupStack::PushL( aknbtn );
    aknbtn->ConstructL( AknIconUtils::AvkonIconFileName(),
                                  EMbmAvkonQgn_indi_button_decrease,
                                  EMbmAvkonQgn_indi_button_decrease_mask,
                                  EMbmAvkonQgn_indi_button_decrease_pressed,
                                EMbmAvkonQgn_indi_button_decrease_pressed_mask,
                                  EMbmAvkonQgn_indi_button_increase,
                                  EMbmAvkonQgn_indi_button_increase_mask,
                                  EMbmAvkonQgn_indi_button_increase_pressed,
                                EMbmAvkonQgn_indi_button_increase_pressed_mask,
                                  strOK, strHelp, KOne );
    AssertNotNullL( aknbtn, strConstructProL );

    _LIT( strSetCurrentState,
          "Class CAknButton function SetCurrentState invoked" );
    aknbtn->SetCurrentState( KOne, ETrue );
    AssertTrueL( ETrue, strSetCurrentState );

    _LIT( strAddStateL, "Class CAknButton function SetAddStateL invoked" );
    aknbtn->AddStateL( CreateIconL(), CreateIconL(),
                       CreateIconL(), CreateIconL(), strOK, strHelp, KOne );
    AssertTrueL( ETrue, strAddStateL );

    _LIT( strSetAddStateProL,
       "Class CAknButton function SetCurrentState( const TDesC...) invoked" );
    aknbtn->AddStateL( AknIconUtils::AvkonIconFileName(),
                       EMbmAvkonQgn_indi_button_decrease,
                       EMbmAvkonQgn_indi_button_decrease_mask,
                       EMbmAvkonQgn_indi_button_decrease_pressed,
                       EMbmAvkonQgn_indi_button_decrease_pressed_mask,
                       EMbmAvkonQgn_indi_button_increase,
                       EMbmAvkonQgn_indi_button_increase_mask,
                       EMbmAvkonQgn_indi_button_increase_pressed,
                       EMbmAvkonQgn_indi_button_increase_pressed_mask,
                       strOK, strHelp, KOne, KAknsIIDNone,
                       KAknsIIDNone, KAknsIIDNone, KAknsIIDNone );
    AssertTrueL( ETrue, strSetAddStateProL );

    _LIT( strSetButtonFlags,
          "Class CAknButton function SetButtonFlags invoked" );
    aknbtn->SetButtonFlags( KOne );
    AssertTrueL( ETrue, strSetButtonFlags );

    TAknsItemID id;
    id.Set( KAknsIIDDefault );
    _LIT( strSetFrameAndCenterIds,
          "Class CAknButton function SetFrameAndCenterIds invoked" );
    aknbtn->SetFrameAndCenterIds( id, id, id ,id ,id, id, id, id, id, id );
    AssertTrueL( ETrue, strSetFrameAndCenterIds );

    _LIT( strSetBackgroundIds,
          "Class CAknButton function SetSetBackgroundIds invoked" );
    aknbtn->SetBackgroundIds( id, id, id, id, id );
    AssertTrueL( ETrue, strSetBackgroundIds );

    //const CFont *font = CEikonEnv::Static()->NormalFont();
    const CFont *font = eikEnv->NormalFont();
    _LIT( strSetTextFont, "Class CAknButton function SetTextFont invoked" );
    aknbtn->SetTextFont( font );
    AssertTrueL( ETrue, strSetTextFont );

    _LIT( strSetTextColorIds,
          "Class CAknButton function SetTextColorIds invoked" );
    aknbtn->SetTextColorIds( id, 0 );
    AssertTrueL( ETrue, strSetTextColorIds );

    _LIT( strSetTextHorizontalAlignment,
          "Class CAknButton function SetTextHorizontalAlignment invoked" );
    aknbtn->SetTextHorizontalAlignment( CGraphicsContext::ELeft );
    AssertTrueL( ETrue, strSetTextHorizontalAlignment );

    _LIT( strSetTextVerticalAlignment,
          "Class CAknButton function SetTextVerticalAlignment invoked" );
    aknbtn->SetTextVerticalAlignment( CAknButton::EBottom );
    AssertTrueL( ETrue, strSetTextVerticalAlignment );

    _LIT( strSetTextUnderlineStyle,
          "Class CAknButton function SetTextUnderlineStyle invoked" );
    aknbtn->SetTextUnderlineStyle( EUnderlineOff );
    AssertTrueL( ETrue, strSetTextUnderlineStyle );

    // HS    
    _LIT( strSetTextAndIconAlignment,
          "Class CAknButton function SetTextAndIconAlignment invoked" );
    aknbtn->SetTextAndIconAlignment( CAknButton::EIconBeforeText );
    AssertTrueL( ETrue, strSetTextAndIconAlignment );

    _LIT( strSetIconScaleMode,
          "Class CAknButton function SetIconScaleMode invoked" );
    aknbtn->SetIconScaleMode( EAspectRatioPreserved );
    AssertTrueL( ETrue, strSetIconScaleMode );

    _LIT( strSetIconHorizontalAlignment,
          "Class CAknButton function SetIconHorizontalAlignment invoked" );
    aknbtn->SetIconHorizontalAlignment( CAknButton::EBottom );
    AssertTrueL( ETrue, strSetIconHorizontalAlignment );

    _LIT( strSetIconVerticalAlignment,
          "Class CAknButton function SetIconVerticalAlignment invoked" );
    aknbtn->SetIconVerticalAlignment( CAknButton::EBottom );
    AssertTrueL( ETrue, strSetIconVerticalAlignment );

    _LIT( strSetHelpNoteTimeouts,
          "Class CAknButton function SetHelpNoteTimeouts invoked" );
    aknbtn->SetHelpNoteTimeouts( KHundred, KHundred );
    AssertTrueL( ETrue, strSetHelpNoteTimeouts );

    _LIT( strSetKeyRepeatInterval,
          "Class CAknButton function SetKeyRepeatInterval invoked" );
    aknbtn->SetKeyRepeatInterval( KHundred, KHundred );
    AssertTrueL( ETrue, strSetKeyRepeatInterval );

    _LIT( strSetLongPressInterval,
          "Class CAknButton function SetLongPressInterval invoked" );
    aknbtn->SetLongPressInterval( KHundred );
    AssertTrueL( ETrue, strSetLongPressInterval );

    _LIT( strStateIndex, "Class CAknButton function StateIndex invoked" );
    aknbtn->StateIndex();
    AssertTrueL( ETrue, strStateIndex );

    _LIT( strDisablePictographs,
          "Class CAknButton function DisablePictographs invoked" );
    aknbtn->DisablePictographs();
    AssertTrueL( ETrue, strDisablePictographs );

    _LIT( strEnablePictographsL,
          "Class CAknButton function EnablePictographsL invoked" );
    CAknPictographInterface* interface = NULL;
    aknbtn->EnablePictographsL( *interface );
    AssertTrueL( ETrue, strEnablePictographsL );
    
    CleanupStack::PopAndDestroy();
    aknbtn = NULL;

    }
예제 #7
0
void CBCTestButtonCase::TestAknButtonL()
    {

    _LIT( strCAknButton,
          "Class CAknButton function CAknButton invoked" );
    _LIT( strCAknButtonDes,
          "Class CAknButton function ~CAknButton invoked" );
    CAknButton *aknbtn = new( ELeave ) CAknButtonEx( KZero );
    AssertNotNullL( aknbtn, strCAknButton );
    delete aknbtn;
    AssertTrueL( ETrue, strCAknButtonDes );
    aknbtn = NULL;

    _LIT( strNewL, "Class CAknButton function NewL invoked" );
    aknbtn = CAknButtonEx::NewL();
    AssertNotNullL( aknbtn, strNewL );
    delete aknbtn;
    aknbtn = NULL;

    _LIT( strNewLC, "Class CAknButton function NewLC invoked" );
    aknbtn = CAknButtonEx::NewLC();
    AssertNotNullL( aknbtn, strNewLC );
    CleanupStack::PopAndDestroy();
    aknbtn = NULL;

    //CEikonEnv *eikEnv = CEikonEnv::Static();
    TResourceReader resourceReader;
    eikEnv->CreateResourceReaderLC( resourceReader, R_BCTEST_AVKON_BUTTON );

    _LIT( strNewLr,
          "Class CAknButton function NewL( ResourceReader ) invoked" );
    aknbtn = CAknButtonEx::NewL( resourceReader );
    AssertNotNullL( aknbtn, strNewLr );
    delete aknbtn;
    CleanupStack::PopAndDestroy();
    aknbtn = NULL;

    TResourceReader reader;
    eikEnv->CreateResourceReaderLC( reader, R_BCTEST_AVKON_BUTTON );

    _LIT( strNewLCr,
      "Class CAknButton function NewLC( ResourceReader ) overload invoked" );
    aknbtn = CAknButtonEx::NewLC( reader );
    AssertNotNullL( aknbtn, strNewLCr );
    CleanupStack::PopAndDestroy();//aknbtn
    CleanupStack::PopAndDestroy();//reader
    aknbtn = NULL;

    _LIT( strNewLri,
          "Class CAknButton function NewL( TInt ResourceID ) invoked" );
    aknbtn = CAknButtonEx::NewL( R_BCTEST_AVKON_BUTTON );
    AssertNotNullL( aknbtn, strNewLri );
    delete aknbtn;
    aknbtn = NULL;

    _LIT( strNewLCri,
          "Class CAknButton function NewLC( TInt ResourceID ) invoked" );
    aknbtn = CAknButtonEx::NewLC( R_BCTEST_AVKON_BUTTON );
    AssertNotNullL( aknbtn, strNewLCri );
    CleanupStack::PopAndDestroy();
    aknbtn = NULL;


    _LIT( strNewLion,
          "Class CAknButton function NewL( CGulIcon... ) invoked" );
    aknbtn = CAknButtonEx::NewL( CreateIconL(), CreateIconL(),
                                 CreateIconL(), CreateIconL(),
                                 strOK, strHelp, KZero, KOne );
    AssertNotNullL( aknbtn, strNewLion );
    delete aknbtn;
    aknbtn = NULL;

    _LIT( strNewLCion,
          "Class CAknButton function NewLC( CGulIcon... ) invoked" );
    aknbtn = CAknButtonEx::NewLC( CreateIconL(), CreateIconL(),
                                  CreateIconL(), CreateIconL(),
                                  strOK, strHelp, KZero, KOne );
    AssertNotNullL( aknbtn, strNewLCion );
    CleanupStack::PopAndDestroy();//aknbtn
    aknbtn = NULL;

    _LIT( strNewLfile,
             "Class CAknButton function NewL( const TDesC...) invoked" );
    aknbtn = CAknButtonEx::NewL( AknIconUtils::AvkonIconFileName(),
                                 EMbmAvkonQgn_indi_button_decrease,
                                 EMbmAvkonQgn_indi_button_decrease_mask,
                                 EMbmAvkonQgn_indi_button_decrease_pressed,
                               EMbmAvkonQgn_indi_button_decrease_pressed_mask,
                                 EMbmAvkonQgn_indi_button_increase,
                                 EMbmAvkonQgn_indi_button_increase_mask,
                                 EMbmAvkonQgn_indi_button_increase_pressed,
                               EMbmAvkonQgn_indi_button_increase_pressed_mask,
                                 strOK, strHelp, KZero, KOne );
    AssertNotNullL( aknbtn, strNewLfile );
    delete aknbtn;
    aknbtn = NULL;

    _LIT( strNewLCfile,
            "Class CAknButton function NewLC( const TDesC...) invoked" );
    aknbtn = CAknButtonEx::NewLC( AknIconUtils::AvkonIconFileName(),
                                  EMbmAvkonQgn_indi_button_decrease,
                                  EMbmAvkonQgn_indi_button_decrease_mask,
                                  EMbmAvkonQgn_indi_button_decrease_pressed,
                                EMbmAvkonQgn_indi_button_decrease_pressed_mask,
                                  EMbmAvkonQgn_indi_button_increase,
                                  EMbmAvkonQgn_indi_button_increase_mask,
                                  EMbmAvkonQgn_indi_button_increase_pressed,
                                EMbmAvkonQgn_indi_button_increase_pressed_mask,
                                  strOK, strHelp, KZero, KOne );
    AssertNotNullL( aknbtn, strNewLCfile );

    CleanupStack::PopAndDestroy();
    aknbtn = NULL;

    }
예제 #8
0
// ---------------------------------------------------------------------------
// CBCTestButtonCase::TestLayoutDecorator
// ---------------------------------------------------------------------------
//
void CBCTestButtonCase::TestAknButtonStateL()
    {
    // Test some API here
    _LIT( strCAknButtonState,
          "Class CAknButtonState function CAknButtonState invoked" );
    _LIT( strCAknButtonStateDes,
          "Class CAknButtonState function ~CAknButtonState invoked" );
    CAknButtonStateEx *btnstat = new( ELeave ) CAknButtonStateEx( KOne );
    AssertNotNullL( btnstat, strCAknButtonState );

    _LIT( strNewL, "Class CAknButtonState function ConstructL invoked" );
    CleanupStack::PushL( btnstat );
    btnstat->ConstructL( CreateIconL(), NULL, NULL, NULL, strOK, strCancel );
    CleanupStack::Pop( btnstat );
    AssertNotNullL( btnstat, strNewL );

    delete btnstat;
    AssertTrueL( ETrue, strCAknButtonStateDes );
    btnstat = NULL;


    _LIT( strNewLOverLoad,
          "Class CAknButtonState function ConstructL( OverLoad ) invoked" );
    CAknButtonStateEx *btnstate = new( ELeave ) CAknButtonStateEx( KOne );
    CleanupStack::PushL( btnstate );
    btnstate->ConstructL( AknIconUtils::AvkonIconFileName(),
                          EMbmAvkonQgn_indi_button_decrease,
                          EMbmAvkonQgn_indi_button_decrease_mask,
                          EMbmAvkonQgn_indi_button_decrease_pressed,
                          EMbmAvkonQgn_indi_button_decrease_pressed_mask,
                          EMbmAvkonQgn_indi_button_increase,
                          EMbmAvkonQgn_indi_button_increase_mask,
                          EMbmAvkonQgn_indi_button_increase_pressed,
                          EMbmAvkonQgn_indi_button_increase_pressed_mask,
                          strOK, strCancel );

    AssertNotNullL( btnstate, strNewLOverLoad );


    _LIT( strHasText, "Class CAknButtonState function HasText invoked" );
    _LIT( strHasHelp, "Class CAknButtonState function HasHelp invoked" );
    TBool hasText = btnstate->HasText();
    AssertTrueL( hasText, strHasText );
    TBool hasHelp = btnstate->HasHelp();
    AssertTrueL( hasHelp, strHasHelp );

    _LIT( strSizeChanged,
          "Class CAknButtonState function SizeChanged invoked" );
    TRect client( KLeft, KTop, KRight, KBottom );
    btnstate->SizeChanged( client, EAspectRatioPreserved );
    AssertTrueL( ETrue, strSizeChanged );

    _LIT( strIcon, "Class CAknButtonState function Icon invoked" );
    _LIT( strDimmedIcon,
          "Class CAknButtonState function DimmedIcon invoked" );
    _LIT( strPressedIcon,
          "Class CAknButtonState function PressedIcon invoked" );
    _LIT( strHoverIcon,
          "Class CAknButtonState function HoverIcon invoked" );
    const CGulIcon *ico = btnstate->Icon();
    AssertNotNullL( const_cast<CGulIcon*>( ico ), strIcon );
    ico = btnstate->DimmedIcon();
    AssertNotNullL( const_cast<CGulIcon*>( ico ), strDimmedIcon );
    ico = btnstate->PressedIcon();
    AssertNotNullL( const_cast<CGulIcon*>( ico ), strPressedIcon );
    ico = btnstate->HoverIcon();
    AssertNotNullL( const_cast<CGulIcon*>( ico ), strHoverIcon );

    _LIT( strTxt, "Class CAknButtonState function Text invoked" );
    _LIT( strHelpText,
          "Class CAknButtonState function HelpText invoked" );
    TDesC strText = btnstate->Text();
    AssertTrueL( ETrue, strTxt );

    strText = btnstate->HelpText();
    AssertTrueL( ETrue, strHelpText );

    _LIT( strFlags, "Class CAknButtonState function Flags invoked" );
    TInt iFlag = btnstate->Flags();
    AssertTrueL( ETrue, strFlags );

    _LIT( strSetIcon,
          "Class CAknButtonState function SetIcon invoked" );
    _LIT( strSetDimmedIcon,
          "Class CAknButtonState function SetDimmedIcon invoked" );
    _LIT( strSetPressedIcon,
          "Class CAknButtonState function SetPressedIcon invoked" );
    _LIT( strSetHoverIcon,
          "Class CAknButtonState function SetHoverIcon invoked" );
    _LIT( strSetTextL,
          "Class CAknButtonState function SetTextL invoked" );
    _LIT( strSetHelpTextL,
          "Class CAknButtonState function SetHelpTextL invoked" );
    _LIT( strSetFlags,
          "Class CAknButtonState function SetFlags invoked" );


    btnstate->SetIcon( CreateIconL() );
    AssertTrueL( ETrue, strSetIcon );
    btnstate->SetDimmedIcon ( CreateIconL() );
    AssertTrueL( ETrue, strSetDimmedIcon );
    btnstate->SetPressedIcon( CreateIconL() );
    AssertTrueL( ETrue, strSetPressedIcon );
    btnstate->SetHoverIcon( CreateIconL() );
    AssertTrueL( ETrue, strSetHoverIcon );

    btnstate->SetTextL( strOK );
    AssertTrueL( ETrue, strSetTextL );
    btnstate->SetHelpTextL( strHelp );
    AssertTrueL( ETrue, strSetHelpTextL );
    btnstate->SetFlags ( KOne );
    AssertTrueL( ETrue, strSetFlags );

    CleanupStack::PopAndDestroy();

    _LIT( strConstructFromResourceL,
          "Class CAknButtonStateEx function ConstructFromResourceL invoked" );

    //CEikonEnv *eikEnv = CEikonEnv::Static();
    TResourceReader resourceReader;
    eikEnv->CreateResourceReaderLC( resourceReader,
                                    R_BCTESTAKN_BUTTON_STATE );
    CAknButtonStateEx *aknbtnst = new( ELeave ) CAknButtonStateEx( KZero );
    CleanupStack::PushL( aknbtnst );
    aknbtnst->ConstructFromResourceL( resourceReader );
    CleanupStack::Pop( aknbtnst );
    AssertNotNullL( aknbtnst, strConstructFromResourceL );
    delete aknbtnst;
    CleanupStack::PopAndDestroy();


    }