classicui_pub/buttons_api/tsrc/src/testsdkbuttonsblockseikmnbut.cpp
changeset 0 2f259fa3e83a
--- /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 <e32svr.h>
+#include <stifparser.h>
+#include <stiftestinterface.h>
+#include <testsdkbuttons.rsg>
+#include <s32mem.h>
+
+#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