/* ======================================================================== Name : PjsuaContainerView.cpp Author : nanang Copyright : Copyright (C) 2013 Teluu Inc. (http://www.teluu.com) Description : ======================================================================== */ // [[[ begin generated region: do not modify [Generated System Includes] #include #include #include #include #include #include #include #include #include #include #include #include // ]]] end generated region [Generated System Includes] // [[[ begin generated region: do not modify [Generated User Includes] #include "pjsua.hrh" #include "pjsuaContainerView.h" #include "pjsuaContainer.h" // ]]] end generated region [Generated User Includes] // [[[ begin generated region: do not modify [Generated Constants] // ]]] end generated region [Generated Constants] /** * First phase of Symbian two-phase construction. Should not contain any * code that could leave. */ CpjsuaContainerView::CpjsuaContainerView() { // [[[ begin generated region: do not modify [Generated Contents] iPjsuaContainer = NULL; // ]]] end generated region [Generated Contents] } /** * The view's destructor removes the container from the control * stack and destroys it. */ CpjsuaContainerView::~CpjsuaContainerView() { // [[[ begin generated region: do not modify [Generated Contents] delete iPjsuaContainer; iPjsuaContainer = NULL; // ]]] end generated region [Generated Contents] } /** * Symbian two-phase constructor. * This creates an instance then calls the second-phase constructor * without leaving the instance on the cleanup stack. * @return new instance of CpjsuaContainerView */ CpjsuaContainerView* CpjsuaContainerView::NewL() { CpjsuaContainerView* self = CpjsuaContainerView::NewLC(); CleanupStack::Pop( self ); return self; } /** * Symbian two-phase constructor. * This creates an instance, pushes it on the cleanup stack, * then calls the second-phase constructor. * @return new instance of CpjsuaContainerView */ CpjsuaContainerView* CpjsuaContainerView::NewLC() { CpjsuaContainerView* self = new ( ELeave ) CpjsuaContainerView(); CleanupStack::PushL( self ); self->ConstructL(); return self; } /** * Second-phase constructor for view. * Initialize contents from resource. */ void CpjsuaContainerView::ConstructL() { // [[[ begin generated region: do not modify [Generated Code] BaseConstructL( R_PJSUA_CONTAINER_PJSUA_CONTAINER_VIEW ); // ]]] end generated region [Generated Code] // add your own initialization code here } /** * @return The UID for this view */ TUid CpjsuaContainerView::Id() const { return TUid::Uid( EPjsuaContainerViewId ); } /** * Handle a command for this view (override) * @param aCommand command id to be handled */ void CpjsuaContainerView::HandleCommandL( TInt aCommand ) { // [[[ begin generated region: do not modify [Generated Code] TBool commandHandled = EFalse; switch ( aCommand ) { // code to dispatch to the AknView's menu and CBA commands is generated here default: break; } if ( !commandHandled ) { if ( aCommand == EAknSoftkeyBack ) { AppUi()->HandleCommandL( EEikCmdExit ); } } // ]]] end generated region [Generated Code] } /** * Handles user actions during activation of the view, * such as initializing the content. */ void CpjsuaContainerView::DoActivateL( const TVwsViewId& /*aPrevViewId*/, TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/ ) { // [[[ begin generated region: do not modify [Generated Contents] SetupStatusPaneL(); if ( iPjsuaContainer == NULL ) { iPjsuaContainer = CreateContainerL(); iPjsuaContainer->SetMopParent( this ); AppUi()->AddToStackL( *this, iPjsuaContainer ); } // ]]] end generated region [Generated Contents] } /** */ void CpjsuaContainerView::DoDeactivate() { // [[[ begin generated region: do not modify [Generated Contents] CleanupStatusPane(); if ( iPjsuaContainer != NULL ) { AppUi()->RemoveFromViewStack( *this, iPjsuaContainer ); delete iPjsuaContainer; iPjsuaContainer = NULL; } // ]]] end generated region [Generated Contents] } /** * Handle status pane size change for this view (override) */ void CpjsuaContainerView::HandleStatusPaneSizeChange() { CAknView::HandleStatusPaneSizeChange(); // this may fail, but we're not able to propagate exceptions here TVwsViewId view; AppUi()->GetActiveViewId( view ); if ( view.iViewUid == Id() ) { TInt result; TRAP( result, SetupStatusPaneL() ); } // Hide menu Cba()->MakeVisible(EFalse); //PutMessage("HandleStatusPaneSizeChange()"); // [[[ begin generated region: do not modify [Generated Code] // ]]] end generated region [Generated Code] } // [[[ begin generated function: do not modify void CpjsuaContainerView::SetupStatusPaneL() { // reset the context pane TUid contextPaneUid = TUid::Uid( EEikStatusPaneUidContext ); CEikStatusPaneBase::TPaneCapabilities subPaneContext = StatusPane()->PaneCapabilities( contextPaneUid ); if ( subPaneContext.IsPresent() && subPaneContext.IsAppOwned() ) { CAknContextPane* context = static_cast< CAknContextPane* > ( StatusPane()->ControlL( contextPaneUid ) ); context->SetPictureToDefaultL(); } // setup the title pane TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle ); CEikStatusPaneBase::TPaneCapabilities subPaneTitle = StatusPane()->PaneCapabilities( titlePaneUid ); if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() ) { CAknTitlePane* title = static_cast< CAknTitlePane* >( StatusPane()->ControlL( titlePaneUid ) ); TResourceReader reader; iEikonEnv->CreateResourceReaderLC( reader, R_PJSUA_CONTAINER_TITLE_RESOURCE ); title->SetFromResourceL( reader ); CleanupStack::PopAndDestroy(); // reader internal state } } // ]]] end generated function // [[[ begin generated function: do not modify void CpjsuaContainerView::CleanupStatusPane() { } // ]]] end generated function /** * Creates the top-level container for the view. You may modify this method's * contents and the CPjsuaContainer::NewL() signature as needed to initialize the * container, but the signature for this method is fixed. * @return new initialized instance of CPjsuaContainer */ CPjsuaContainer* CpjsuaContainerView::CreateContainerL() { return CPjsuaContainer::NewL( ClientRect(), NULL, this ); } void CpjsuaContainerView::PutMessage( const char *msg ) { if (!iPjsuaContainer) return; TRAPD(result, iPjsuaContainer->PutMessageL(msg)); }