diff -r 000000000000 -r c316ab048e9d browser/ui/src/SplashView.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/ui/src/SplashView.cpp Fri Jun 25 12:50:05 2010 +0200 @@ -0,0 +1,114 @@ +/* + * Name : SplashView.cpp + * Description : + * Project : This file is part of OpenMAR, an Open Mobile Augmented Reality browser + * Website : http://OpenMAR.org + * + * Copyright (c) 2010 David Caabeiro + * + * All rights reserved. This program and the accompanying materials are made available + * under the terms of the Eclipse Public License v1.0 which accompanies this + * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html + * + */ + +#include "SplashView.h" + +#include +#include + +#include + +#include "Application.hrh" +#include "SettingManager.h" +#include "SplashContainer.h" + +#include "Logger.h" + +CSplashView* CSplashView::NewL(CSettingManager& aSetting) +{ + CSplashView* self = new(ELeave) CSplashView(aSetting); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + + return self; +} + +CSplashView::~CSplashView() +{ + delete iContainer; + delete iConnection; +} + +CSplashView::CSplashView(CSettingManager& aSetting) + : iSetting(aSetting) +{} + +void CSplashView::ConstructL() +{ + BaseConstructL(R_SPLASH_VIEW); + + LOGTXT("Initializing splash screen"); + + // Set up connection which should be used by other components + // (providers, etc) to enable faster connections + iConnection = CConnectionManager::NewL(*this, iSetting); +} + +void CSplashView::ConnectionStartedL(TInt aError) +{ + LOGARG("Connection manager returned %d", aError); + + if (aError) + { + // TODO: Handle error condition. Some kind of 'offline mode' should be allowed, + // thus enabling the use of the application in a restricted way + +// if (!AppUi()->IsAppShutterRunning()) +// AppUi()->RunAppShutter(); + } + + // Perform other setup.. + + // Initial set up complete. Switch to main view + AppUi()->ActivateLocalViewL(TUid::Uid(EARView)); +} + +TUid CSplashView::Id() const +{ + return TUid::Uid(ESplashView); +} + +void CSplashView::DoActivateL(const TVwsViewId& aPrevViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage) +{ + if (!iContainer) + { + // Make status pane invisible + CEikStatusPane* statusPane = StatusPane(); + if (statusPane) + statusPane->MakeVisible(EFalse); + + iContainer = new(ELeave) CSplashContainer(*this); + iContainer->SetMopParent(this); + iContainer->ConstructL(AppUi()->ApplicationRect(), 0); + + AppUi()->AddToStackL(*this, iContainer); + } +} + +void CSplashView::DoDeactivate() +{ + if (iContainer) + { + AppUi()->RemoveFromViewStack(*this, iContainer); + + delete iContainer; + iContainer = 0; + } +} + +void CSplashView::HandleCommandL(TInt aCommand) +{ + AppUi()->HandleCommandL(aCommand); +}