diff -r 000000000000 -r 2f259fa3e83a classicui_pub/buttons_api/tsrc/src/testsdkbuttonsblockseikmnbut.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/classicui_pub/buttons_api/tsrc/src/testsdkbuttonsblockseikmnbut.cpp Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,166 @@ +/* +* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Test api in eikmnbut.h +* +*/ + + + +// [INCLUDE FILES] +#include +#include +#include +#include +#include + +#include "testsdkbuttons.h" + +// FORWARD DECLARATIONS +// Observer class for test function +class CTestMenuObserver : public CBase, public MEikMenuObserver + { + // from MEikMenuObserver, no need + void SetEmphasis(CCoeControl* /*aMenuControl*/,TBool /*aEmphasis*/){} + // from MEikMenuObserver, no need + void ProcessCommandL(TInt /*aCommandId*/){} + }; +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CTestSDKButtons::TestMenuBtConstructorL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKButtons::TestMenuBtConstructorL( CStifItemParser& /*aItem*/ ) + { + CEikMenuButton* menubutton = new ( ELeave ) CEikMenuButton; + CleanupStack::PushL( menubutton ); + STIF_ASSERT_NOT_NULL( menubutton ); + CleanupStack::PopAndDestroy( menubutton ); + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKButtons::TestMenuBtConstructFromResourceL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKButtons::TestMenuBtConstructFromResourceL( CStifItemParser& /*aItem*/ ) + { + CEikMenuButton* menubutton = new ( ELeave ) CEikMenuButton; + CleanupStack::PushL( menubutton ); + TResourceReader reader; + CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TEST_MENU_BUTTON ); + menubutton->ConstructFromResourceL( reader ); + + CleanupStack::PopAndDestroy( 2 ); + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKButtons::TestMenuBtLaunchPopupMenuL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKButtons::TestMenuBtLaunchPopupMenuL( CStifItemParser& /*aItem*/ ) + { + CTestMenuObserver* ob = new ( ELeave ) CTestMenuObserver; + CleanupStack::PushL( ob ); + CEikMenuButton* menubutton = new ( ELeave ) CEikMenuButton; + CleanupStack::PushL( menubutton ); + TResourceReader reader; + CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TEST_MENU_BUTTON ); + menubutton->ConstructFromResourceL( reader ); + menubutton->SetContainerWindowL( *iContainer ); + iContainer->SetComponentControlL( menubutton ); + TPointerEvent event; + menubutton->HandlePointerEventL( event ); +// menubutton->LaunchPopupMenuL( ob ); + CleanupStack::PopAndDestroy( 3 ); + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKButtons::TestMenuBtSetMenuPaneIdL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKButtons::TestMenuBtSetMenuPaneIdL( CStifItemParser& /*aItem*/ ) + { + TInt menupaneid = 0; + CEikMenuButton* menubutton = new ( ELeave ) CEikMenuButton; + CleanupStack::PushL( menubutton ); + TResourceReader reader; + CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TEST_MENU_BUTTON ); + menubutton->ConstructFromResourceL( reader ); + + menubutton->SetMenuPaneId( menupaneid ); + + CleanupStack::PopAndDestroy( 2 ); + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKButtons::TestMenuBtAnimateL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKButtons::TestMenuBtAnimateL( CStifItemParser& /*aItem*/ ) + { + CEikMenuButton* menubutton = new ( ELeave ) CEikMenuButton; + CleanupStack::PushL( menubutton ); + menubutton->Animate(); + CleanupStack::PopAndDestroy( menubutton ); + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKButtons::TestMenuBtWriteInternalStateL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKButtons::TestMenuBtWriteInternalStateL( CStifItemParser& /*aItem*/ ) + { + class CTestEikMenuButton : public CEikMenuButton + { + public: + /*Constructor*/ + CTestEikMenuButton(){} + /*Deconstructor*/ + ~CTestEikMenuButton(){} + void DoWriteInternalStateL( RWriteStream aStream ) + { + WriteInternalStateL( aStream ); + } + }; + CTestEikMenuButton* menubutton = new ( ELeave ) CTestEikMenuButton; + CleanupStack::PushL( menubutton ); + TResourceReader reader; + CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TEST_MENU_BUTTON ); + menubutton->ConstructFromResourceL( reader ); + const TInt KHBufSize = 4096; + HBufC8* buf = HBufC8::NewL( KHBufSize ); + CleanupStack::PushL( buf ); + TPtr8 ptr = buf->Des(); + RDesWriteStream stream; + CleanupClosePushL( stream ); + stream.Open( ptr ); + menubutton->DoWriteInternalStateL( stream ); + stream.CommitL(); + stream.Close(); + CleanupStack::PopAndDestroy( 4 );// menubutton, reader, buf, stream + + return KErrNone; + } + +// End of file