--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/basiclocationinfodisplay/blid/ui/src/CBlidMainControl.cpp Wed Sep 01 12:31:27 2010 +0100
@@ -0,0 +1,726 @@
+/*
+ * Copyright (c) 2007-2008 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: Provides blid startup view class methods.
+ *
+ */
+
+// SYSTEM INCLUDES
+#include <aknmessagequerydialog.h> //CAknMessageQueryDialog
+#include <StringLoader.h>
+#include <aknconsts.h>
+#include <blid.rsg>
+#include <akntitle.h>
+#include <aknnavide.h>
+#include <eikspane.h>
+#include <aknlayoutscalable_apps.cdl.h>
+#include <layoutmetadata.cdl.h>
+#include <blid.mbg>
+
+// HTK includes
+#include <alf/alfenv.h>
+#include <alf/alfanchorlayout.h>
+#include <alf/alftextvisual.h>
+#include <alf/alftextstyle.h>
+#include <alf/alfborderbrush.h>
+#include <alf/alfbrusharray.h>
+#include <alf/alfevent.h>
+#include <alf/alftransformation.h>
+#include <alf/alftexture.h>
+#include <alf/alfdecklayout.h>
+#include <alf/alfutil.h>
+#include <alf/alfimageloaderutil.h>
+#include <alf/alfimagevisual.h>
+
+#include "Blid.hrh"
+
+// USER INCLUDES
+#include "CBlidMainControl.h"
+#include "CBlidEng.h"
+#include "CBlidDocument.h"
+#include "MBlidLocation.h"
+#include "CBlidBaseView.h"
+#include "CBlidBaseContainer.h"
+#include "bliduiconsts.h"
+#include "BlidNotes.h"
+#include "CBlidLocSettingLauncher.h"
+#include "Debug.h"
+
+TInt CBlidMainControl::iPSYTimeoutCount = 0;
+
+TInt MessageQueryCallBack(TAny* aPtr);
+
+const TInt KTimerValue = 200000;
+
+// ================= MEMBER FUNCTIONS =======================
+// ---------------------------------------------------------
+// CBlidMainControl::NewL()
+// Two phased constructor
+// ---------------------------------------------------------
+//
+CBlidMainControl* CBlidMainControl::NewL(CAlfEnv& aEnv, const TRect& aRect,
+ CBlidBaseView& aView)
+ {
+ CBlidMainControl* self = new (ELeave) CBlidMainControl(aEnv, aView);
+ CleanupStack::PushL(self);
+ self->ConstructL(aRect);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// ---------------------------------------------------------
+//CBlidMainControl::CBlidMainControl()
+// First phase constructor, can not leave
+// ---------------------------------------------------------
+//
+CBlidMainControl::CBlidMainControl(CAlfEnv& aEnv, CBlidBaseView& aView) :
+ CAlfControl(), iEnv(aEnv), iView(aView), isAccessoryRequired(EFalse)
+ {
+ iOnlineMode = EFalse;
+ }
+
+// ---------------------------------------------------------
+// CBlidMainControl::ConstructL()
+// Second phase constructor, may leave
+// ---------------------------------------------------------
+//
+void CBlidMainControl::ConstructL(const TRect& /*aRect*/)
+ {
+ CAlfControl::ConstructL(iEnv);
+
+ iMainLayout = CAlfAnchorLayout::AddNewL(*this);
+ iSearchTextVisual = CAlfTextVisual::AddNewL(*this, iMainLayout);
+ iAnimationVisual = CAlfImageVisual::AddNewL(*this, iMainLayout);
+
+ iDisplayIcon = 1;
+ iPeriodic = CPeriodic::NewL(0); // neutral priority
+ if (!iPeriodic->IsActive())
+ {
+ iPeriodic->Start(TTimeIntervalMicroSeconds32(KTimerValue),
+ TTimeIntervalMicroSeconds32(KTimerValue), TCallBack(Tick,
+ this));
+ }
+
+ UpdateDisplayLayoutL();
+ CreateSearchingTextL();
+ CreateAnimationL();
+ UpdateAnimation();
+
+ iLauncher = NULL;
+ isSettingsLaunched = EFalse;
+
+ //start requesting
+ CBlidEng* engine = iView.BlidDocument()->Engine();
+ iLocation = engine->LocationModel();
+ }
+
+// ---------------------------------------------------------
+// CBlidMainControl::Tick()
+// Timer callback function, to update image in animation
+// ---------------------------------------------------------
+//
+TInt CBlidMainControl::Tick(TAny* aObject)
+ {
+ ((CBlidMainControl*) aObject)->UpdateAnimation(); // cast, and call non-static function
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------
+// CBlidMainControl::CreateSearchingTextL()
+// Function to create search text visual
+// ---------------------------------------------------------
+//
+void CBlidMainControl::CreateSearchingTextL()
+ {
+ /* Layout Hierarchy
+ main_blid2_pane -> blid2_search_pane -> blid2_search_pane_t1
+ */
+
+ // Get the text font
+
+ TInt typefaceStyleId = iEnv.TextStyleManager().CreatePlatformTextStyleL(
+ EAknLogicalFontPrimarySmallFont, EAlfTextStyleNormal);
+ CAlfTextStyle* style1 =
+ iEnv.TextStyleManager().TextStyle(typefaceStyleId);
+ style1->SetBold(ETrue);
+ // Set the text font size in pixel
+ style1->SetTextPaneHeightInPixels(26, ETrue);
+
+ TRgb rgb;
+ // Fetch the skin color
+ AknsUtils::GetCachedColor(AknsUtils::SkinInstance(), rgb,
+ KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG1);
+
+ iSearchTextVisual->SetColor(rgb);
+ HBufC* noteText = StringLoader::LoadLC(R_BLID_NOTE_SEARCHING_ANIMATION,
+ CEikonEnv::Static());
+ iSearchTextVisual->SetTextL(*noteText);
+ iSearchTextVisual->SetTextStyle(style1->Id());
+ iSearchTextVisual->SetAlign(EAlfAlignHCenter, EAlfAlignVCenter);
+ CleanupStack::PopAndDestroy(noteText); //noteText
+
+ }
+
+// ---------------------------------------------------------
+// CBlidMainControl::CreateAnimationL()
+// Creates image visuals for animation
+// ---------------------------------------------------------
+//
+void CBlidMainControl::CreateAnimationL()
+ {
+ /* Layout Hierarchy
+ main_blid2_pane -> blid2_search_pane -> blid2_search_pane_g1
+ */
+
+ // code to load svg icon
+ MAlfBitmapProvider* provider = NULL;
+
+ // first creste the image loader utils and then call SetSize.
+ iView.ImageLoaderUtils()->SetSize(iAnimationRect.Size());
+
+ // then create the bitmap provider
+ provider = iView.ImageLoaderUtils()->CreateImageLoaderL(
+ KAknsIIDQgnGrafBlidStartup, // svg icon skin constant id defiened in Aknsconstant.h file
+ iView.ImagePathName(), // mif file name with path.
+ EMbmBlidQgn_graf_blid_startup_01, // bitmap id defiened in mbg file
+ EMbmBlidQgn_graf_blid_startup_01_mask); // bitmap mask id defiened in mbg file
+ // now using that bitmap provider create the texture.
+ CAlfTexture & texture1 = iEnv.TextureManager().CreateTextureL(
+ KAlfAutoGeneratedTextureId, provider, EAlfTextureFlagDefault);
+ iTextures.Append(&texture1);
+
+ // then create the bitmap provider
+ provider = iView.ImageLoaderUtils()->CreateImageLoaderL(
+ KAknsIIDQgnGrafBlidStartup, // svg icon skin constant id defiened in Aknsconstant.h file
+ iView.ImagePathName(), // mif file name with path.
+ EMbmBlidQgn_graf_blid_startup_02, // bitmap id defiened in mbg file
+ EMbmBlidQgn_graf_blid_startup_02_mask); // bitmap mask id defiened in mbg file
+ // now using that bitmap provider create the texture.
+ CAlfTexture & texture2 = iEnv.TextureManager().CreateTextureL(
+ KAlfAutoGeneratedTextureId, provider, EAlfTextureFlagDefault);
+ iTextures.Append(&texture2);
+
+ // then create the bitmap provider
+ provider = iView.ImageLoaderUtils()->CreateImageLoaderL(
+ KAknsIIDQgnGrafBlidStartup, // svg icon skin constant id defiened in Aknsconstant.h file
+ iView.ImagePathName(), // mif file name with path.
+ EMbmBlidQgn_graf_blid_startup_03, // bitmap id defiened in mbg file
+ EMbmBlidQgn_graf_blid_startup_03_mask); // bitmap mask id defiened in mbg file
+ // now using that bitmap provider create the texture.
+ CAlfTexture & texture3 = iEnv.TextureManager().CreateTextureL(
+ KAlfAutoGeneratedTextureId, provider, EAlfTextureFlagDefault);
+ iTextures.Append(&texture3);
+
+ // then create the bitmap provider
+ provider = iView.ImageLoaderUtils()->CreateImageLoaderL(
+ KAknsIIDQgnGrafBlidStartup, // svg icon skin constant id defiened in Aknsconstant.h file
+ iView.ImagePathName(), // mif file name with path.
+ EMbmBlidQgn_graf_blid_startup_04, // bitmap id defiened in mbg file
+ EMbmBlidQgn_graf_blid_startup_04_mask); // bitmap mask id defiened in mbg file
+ // now using that bitmap provider create the texture.
+ CAlfTexture & texture4 = iEnv.TextureManager().CreateTextureL(
+ KAlfAutoGeneratedTextureId, provider, EAlfTextureFlagDefault);
+ iTextures.Append(&texture4);
+
+ // then create the bitmap provider
+ provider = iView.ImageLoaderUtils()->CreateImageLoaderL(
+ KAknsIIDQgnGrafBlidStartup, // svg icon skin constant id defiened in Aknsconstant.h file
+ iView.ImagePathName(), // mif file name with path.
+ EMbmBlidQgn_graf_blid_startup_05, // bitmap id defiened in mbg file
+ EMbmBlidQgn_graf_blid_startup_05_mask); // bitmap mask id defiened in mbg file
+ // now using that bitmap provider create the texture.
+ CAlfTexture & texture5 = iEnv.TextureManager().CreateTextureL(
+ KAlfAutoGeneratedTextureId, provider, EAlfTextureFlagDefault);
+ iTextures.Append(&texture5);
+
+ // then create the bitmap provider
+ provider = iView.ImageLoaderUtils()->CreateImageLoaderL(
+ KAknsIIDQgnGrafBlidStartup, // svg icon skin constant id defiened in Aknsconstant.h file
+ iView.ImagePathName(), // mif file name with path.
+ EMbmBlidQgn_graf_blid_startup_06, // bitmap id defiened in mbg file
+ EMbmBlidQgn_graf_blid_startup_06_mask); // bitmap mask id defiened in mbg file
+ // now using that bitmap provider create the texture.
+ CAlfTexture & texture6 = iEnv.TextureManager().CreateTextureL(
+ KAlfAutoGeneratedTextureId, provider, EAlfTextureFlagDefault);
+ iTextures.Append(&texture6);
+
+ // then create the bitmap provider
+ provider = iView.ImageLoaderUtils()->CreateImageLoaderL(
+ KAknsIIDQgnGrafBlidStartup, // svg icon skin constant id defiened in Aknsconstant.h file
+ iView.ImagePathName(), // mif file name with path.
+ EMbmBlidQgn_graf_blid_startup_07, // bitmap id defiened in mbg file
+ EMbmBlidQgn_graf_blid_startup_07_mask); // bitmap mask id defiened in mbg file
+ // now using that bitmap provider create the texture.
+ CAlfTexture & texture7 = iEnv.TextureManager().CreateTextureL(
+ KAlfAutoGeneratedTextureId, provider, EAlfTextureFlagDefault);
+ iTextures.Append(&texture7);
+
+ // then create the bitmap provider
+ provider = iView.ImageLoaderUtils()->CreateImageLoaderL(
+ KAknsIIDQgnGrafBlidStartup, // svg icon skin constant id defiened in Aknsconstant.h file
+ iView.ImagePathName(), // mif file name with path.
+ EMbmBlidQgn_graf_blid_startup_08, // bitmap id defiened in mbg file
+ EMbmBlidQgn_graf_blid_startup_08_mask); // bitmap mask id defiened in mbg file
+ // now using that bitmap provider create the texture.
+ CAlfTexture & texture8 = iEnv.TextureManager().CreateTextureL(
+ KAlfAutoGeneratedTextureId, provider, EAlfTextureFlagDefault);
+ iTextures.Append(&texture8);
+
+ }
+
+// ---------------------------------------------------------
+// CBlidMainControl::UpdateAnimation
+// updates the animation image
+// ---------------------------------------------------------
+//
+void CBlidMainControl::UpdateAnimation()
+ {
+ if (KNumOfStartUpIcon > iDisplayIcon)
+ {
+ iDisplayIcon++;
+ }
+ else
+ {
+ iDisplayIcon = 1;
+ }
+ iAnimationVisual->SetImage(TAlfImage(*iTextures[iDisplayIcon - 1]));//N
+ }
+
+// ----------------------------------------------------
+// CBlidMainControl::~CBlidMainControl
+// Destructor
+// Frees reserved resources
+// ----------------------------------------------------
+//
+CBlidMainControl::~CBlidMainControl()
+ {
+ iTextures.Reset();
+ iTextures.Close();
+ delete iLauncher;
+ delete iHeadPaneText;
+ delete iMsgQueryText;
+ delete iLinkText;
+ delete iMsgQText;
+ delete iPeriodic;
+ }
+
+// ---------------------------------------------------------
+// CBlidMainControl::UpdateL
+// Updates the view after getting update from location model
+// ---------------------------------------------------------
+//
+void CBlidMainControl::UpdateL()
+ {
+ TInt result = 0;
+ DEBUG1(" CBlidMainControl::UpdateL iErrorCode ::%d", iErrorCode );
+
+ if (!iView.IsSatViewActive() && iOnlineMode)
+ {
+
+ if (iView.IsForeGroundApp())
+ {
+ iView.ActivateSatelliteViewL();
+ }
+ }
+ TInt retVal = iLocation->CheckGPSAvailability();
+ // Check GPS device availability
+ DEBUG1(" CBlidMainControl::CheckGPSAvailability code ::%d", retVal );
+ switch (iErrorCode)
+ {
+ case KErrTimedOut:
+ {
+ if (retVal == 1)
+ {
+ /*
+ GPS device connected but position information
+ available but not of good quality
+ */
+ if (iView.IsForeGroundApp())
+ {
+ iView.ActivateSatelliteViewL();
+ }
+ }
+ break;
+ }
+ case KErrNotFound:
+ // No module (PSY) selected or invalid PSY
+ {
+ iOnlineMode = EFalse;
+ if (iView.IsForeGroundApp())
+ {
+ iLocation->StopRequesting();
+ TCallBack callback(MessageQueryCallBack, this);
+ result
+ = DispMsgQueryWithLinkL(R_BLID_NOGPS_FOUND,
+ R_BLID_NOGPS_FOUND_TEXT,
+ R_BLID_SELECT_POSITIONING_METHOD, ETrue,
+ callback);
+ if (result == EBlidSoftkeyRetry)
+ {
+ iLocation->StartRequesting();
+ }
+ else if (result == EAknSoftkeyOk)
+ {
+ iView.ExitMainApplicationL(EEikCmdExit);
+ }
+ }
+ break;
+ }
+ case KPositionPartialUpdate:
+ {
+ if (iView.IsForeGroundApp())
+ {
+ iView.ActivateSatelliteViewL();
+ }
+ break;
+ }
+ case KErrArgument:
+ // The positioning module is unable to support the requested type
+ default:
+ {
+ iOnlineMode = EFalse;
+
+ if (retVal == 0)
+ {
+ if (iLocation->IsSatCapablePsyAvailable())
+ {
+ iLocation->StopRequesting();
+ iOnlineMode = EFalse;
+ TCallBack callback(MessageQueryCallBack, this);
+ result = DispMsgQueryWithLinkL(R_BLID_NOPSY_ENABLED,
+ R_BLID_ERROR_NO_PSY,
+ R_BLID_SELECT_POSITIONING_METHOD, ETrue,
+ callback);
+ if (result == EBlidSoftkeyRetry)
+ {
+ iLocation->StartRequesting();
+ }
+ else if (result == EAknSoftkeyOk)
+ {
+ iView.ExitMainApplicationL(EEikCmdExit);
+ }
+ }
+ // no GPS device note
+ // GPS un-available
+ else if (iView.IsForeGroundApp())
+ {
+ iLocation->StopRequesting();
+ TCallBack callback(MessageQueryCallBack, this);
+ isAccessoryRequired = ETrue;
+ result = DispMsgQueryWithLinkL(R_BLID_NOGPS_FOUND,
+ R_BLID_NOGPS_AVAILABLE_TEXT,
+ R_BLID_SELECT_POSITIONING_METHOD, EFalse,
+ callback);
+ if (result == EAknSoftkeyOk)
+ {
+ iView.ExitMainApplicationL(EEikCmdExit);
+ }
+ }
+ else
+ {
+ BlidNotes::iGPSUnavailableDisplayed = ETrue;
+ }
+ CBlidBaseContainer::SetGPSAvailability(EFalse);
+ }
+ break;
+
+ }
+ }
+ }
+
+// ----------------------------------------------------
+// CBlidMainControl::MakeTitleL
+// Sets the title to string represented by resource
+// ----------------------------------------------------
+//
+void CBlidMainControl::MakeTitleL(TInt aResourceText)
+ {
+ HBufC* buffer = StringLoader::LoadLC(aResourceText);
+ CAknTitlePane* title =
+ static_cast<CAknTitlePane*> (StatusPane()-> ControlL(TUid::Uid(
+ EEikStatusPaneUidTitle)));
+ CleanupStack::Pop(); //buffer
+ title->SetText(buffer); // Takes ownership of buf
+ }
+
+// ----------------------------------------------------
+// CBlidMainControl::StatusPane
+// Returns the status pane
+// ----------------------------------------------------
+//
+CEikStatusPane* CBlidMainControl::StatusPane() const
+ {
+ return CEikonEnv::Static()->AppUiFactory()->StatusPane();
+ }
+
+// ----------------------------------------------------
+// CBlidMainControl::SetErrorCode
+// Sets the error code
+// ----------------------------------------------------
+//
+void CBlidMainControl::SetErrorCode(const TInt aErrorCode)
+ {
+ iErrorCode = aErrorCode;
+ }
+
+// ----------------------------------------------------
+// CBlidMainControl::SetOnlineMode
+// Sets the online mode
+// ----------------------------------------------------
+//
+void CBlidMainControl::SetOnlineMode(const TBool aOnlineMode)
+ {
+ iOnlineMode = aOnlineMode;
+ }
+
+// ----------------------------------------------------
+// CBlidMainControl::DispMsgQueryWithLinkL()
+// Displays the message query with a link
+// ----------------------------------------------------
+//
+TInt CBlidMainControl::DispMsgQueryWithLinkL(TInt aHeadingText,
+ TInt aMsgQueryText, TInt aLinkText, TBool aLinkShow,
+ TCallBack aCallBack)
+ {
+ CEikonEnv* env = CEikonEnv::Static();
+ if (!iHeadPaneText)
+ {
+ iHeadPaneText = env->AllocReadResourceL(aHeadingText);
+ }
+
+ if (!iMsgQueryText)
+ {
+ iMsgQueryText = env->AllocReadResourceL(aMsgQueryText);
+ }
+
+ if (!iLinkText)
+ {
+ iLinkText = env->AllocReadResourceL(aLinkText);
+ }
+ if (!iMsgQText)
+ {
+ if (aLinkShow != EFalse)
+ {
+ iMsgQText = HBufC::NewL(iMsgQueryText->Length()
+ + KNewLine().Length() + KOpeningLinkTag().Length()
+ + iLinkText->Length() + KClosingLinkTag().Length());
+ }
+ else
+ {
+ iMsgQText = HBufC::NewL(iMsgQueryText->Length()
+ + KNewLine().Length() + KOpeningLinkTag().Length());
+ }
+ }
+
+ iMsgQText->Des().Copy(*iMsgQueryText);
+ iMsgQText->Des().Append(KNewLine);
+ if (!isAccessoryRequired)
+ {
+ iMsgQText->Des().Append(KOpeningLinkTag);
+ iMsgQText->Des().Append(*iLinkText);
+ iMsgQText->Des().Append(KClosingLinkTag);
+ }
+ else
+ {
+ iMsgQText->Des().Append(_L( " "));
+ }
+ //////////////////////////////////////////////////////
+ CAknMessageQueryDialog* msgDlg = CAknMessageQueryDialog::NewL(*iMsgQText);
+
+ // if we remove this if part it will give CONE8 panic
+ if (iDialog)
+ {
+ delete iDialog;
+ iDialog = NULL;
+ }
+
+ iDialog = msgDlg;
+
+ msgDlg->PrepareLC(R_BLID_MESSAGE_QUERY_DIALOG); // Pushed dialog is popped inside RunLD
+
+ msgDlg->Heading()->SetTextL(*iHeadPaneText);
+
+ msgDlg->SetLink(aCallBack);
+
+ if (!isAccessoryRequired)
+ {
+ msgDlg->ButtonGroupContainer().SetCommandSetL(
+ R_BLID_INFOPOPUP_SOFTKEYS_RETRY__EXIT);
+ }
+ else
+ {
+ msgDlg->ButtonGroupContainer().SetCommandSetL(
+ R_BLID_INFOPOPUP_SOFTKEYS_EXIT);
+ }
+ isDialogLaunched = ETrue;
+ TInt retval = msgDlg->RunLD();
+ if (isDialogLaunched)
+ {
+ msgDlg = NULL;
+ iDialog = NULL;
+ isDialogLaunched = EFalse;
+ return retval;
+ }
+ return -1;
+ }
+
+// ----------------------------------------------------
+// CBlidMainControl::CreateNaviPaneL
+// Creates navigation pane
+// ----------------------------------------------------
+//
+void CBlidMainControl::CreateNaviPaneL()
+ {
+ CEikStatusPane* sp = CEikonEnv::Static()->AppUiFactory()->StatusPane();
+ // Fetch pointer to the default navi pane control
+ CAknNavigationControlContainer* naviPane =
+ static_cast<CAknNavigationControlContainer*> (sp->ControlL(
+ TUid::Uid(EEikStatusPaneUidNavi)));
+
+ naviPane->PushDefaultL(EFalse);
+ }
+
+// ----------------------------------------------------
+// CBlidMainControl::LaunchPositioningSettingsViewL
+// Launches positioning settings view
+// ----------------------------------------------------
+//
+void CBlidMainControl::LaunchPositioningSettingsViewL()
+ {
+ if (!iLauncher)
+ {
+ iLauncher = CBlidLocSettingsLauncher::NewL();
+ }
+ iLauncher->SetControl(this);
+ isSettingsLaunched = ETrue;
+ iLauncher->LaunchL();
+ }
+
+// ----------------------------------------------------
+// CBlidMainControl::DeleteDialogResource
+// Seletes the dialog resources
+// ----------------------------------------------------
+//
+void CBlidMainControl::DeleteDialogResource()
+ {
+ if (isSettingsLaunched)
+ {
+ delete iHeadPaneText;
+ iHeadPaneText = NULL;
+
+ delete iMsgQueryText;
+ iMsgQueryText = NULL;
+
+ delete iLinkText;
+ iLinkText = NULL;
+
+ delete iMsgQText;
+ iMsgQText = NULL;
+ }
+ }
+
+// ----------------------------------------------------
+// CBlidMainControl::UpdateDisplayLayoutL
+// Updates the display layout in response to a change in app resource
+// ----------------------------------------------------
+//
+void CBlidMainControl::UpdateDisplayLayoutL()
+ {
+ /* Layout Hierarchy
+ main_blid2_pane -> blid2_search_pane -> blid2_search_pane_t1
+
+ main_blid2_pane -> blid2_search_pane -> blid2_search_pane_g1
+ */
+
+ TAknLayoutRect mainBlid2Pane;
+ TAknLayoutRect blid2SearchPane;
+ TAknLayoutRect blid2SearchPaneG1;
+ TAknLayoutText blid2SearchPaneT1;
+ //TRect animationRect;
+ TInt variety;
+
+ if (Layout_Meta_Data::IsLandscapeOrientation())
+ {
+ variety = 1;
+ }
+ else
+ {
+ variety = 0;
+ }
+ /////////////// recalculate text rect /////////////////////////
+ TRect rect;
+ AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect);
+ mainBlid2Pane.LayoutRect(rect,
+ AknLayoutScalable_Apps::main_blid2_pane().LayoutLine());
+
+ blid2SearchPane.LayoutRect(mainBlid2Pane.Rect(),
+ AknLayoutScalable_Apps::blid2_search_pane(variety).LayoutLine());
+
+ blid2SearchPaneT1.LayoutText(
+ blid2SearchPane.Rect(),
+ AknLayoutScalable_Apps::blid2_search_pane_t1(variety).LayoutLine());
+
+ /////////////// recalculate animation rect /////////////////////////
+ blid2SearchPaneG1.LayoutRect(
+ blid2SearchPane.Rect(),
+ AknLayoutScalable_Apps::blid2_search_pane_g1(variety).LayoutLine());
+ iAnimationRect = blid2SearchPaneG1.Rect();
+
+ TAlfRealPoint topTextPoint(blid2SearchPaneT1.TextRect().iTl);
+ TAlfRealPoint bottomTextPoint(blid2SearchPaneT1.TextRect().iBr);
+
+ //Anchor for searching Text
+ iMainLayout->SetAnchor(EAlfAnchorTopLeft, 0, EAlfAnchorOriginLeft,
+ EAlfAnchorOriginTop, EAlfAnchorMetricAbsolute,
+ EAlfAnchorMetricAbsolute, TAlfTimedPoint(topTextPoint.iX,
+ topTextPoint.iY));
+ iMainLayout->SetAnchor(EAlfAnchorBottomRight, 0, EAlfAnchorOriginLeft,
+ EAlfAnchorOriginTop, EAlfAnchorMetricAbsolute,
+ EAlfAnchorMetricAbsolute, TAlfTimedPoint(bottomTextPoint.iX,
+ bottomTextPoint.iY));
+
+ TAlfRealPoint topAnimationPoint(iAnimationRect.iTl);
+ TAlfRealPoint bottomAnimationPoint(iAnimationRect.iBr);
+
+ //Anchor for animation
+ iMainLayout->SetAnchor(EAlfAnchorTopLeft, 1, EAlfAnchorOriginLeft,
+ EAlfAnchorOriginTop, EAlfAnchorMetricAbsolute,
+ EAlfAnchorMetricAbsolute, TAlfTimedPoint(topAnimationPoint.iX,
+ topAnimationPoint.iY));
+ iMainLayout->SetAnchor(EAlfAnchorBottomRight, 1, EAlfAnchorOriginLeft,
+ EAlfAnchorOriginTop, EAlfAnchorMetricAbsolute,
+ EAlfAnchorMetricAbsolute, TAlfTimedPoint(bottomAnimationPoint.iX,
+ bottomAnimationPoint.iY));
+
+ }
+
+// -----------------------------------------------------------------------------
+// CBlidMainControl::MessageQueryCallBack()
+// Called when link is clicked on message query dialog
+// -----------------------------------------------------------------------------
+//
+TInt MessageQueryCallBack(TAny* aPtr)
+ {
+ CBlidMainControl* ptr = static_cast<CBlidMainControl*> (aPtr);
+ if (ptr)
+ {
+ TRAP_IGNORE( ptr->LaunchPositioningSettingsViewL() );
+ if (ptr->iDialog)
+ {
+ TRAP_IGNORE( ptr->iDialog->ProcessCommandL( 3001 ) );
+ }
+ }
+ return KErrNone;
+ }
+//End Of File
+