--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/landmarksui/uicontrols/inc/CLmkAppLmItemSelectorImpl.h Wed Sep 01 12:31:27 2010 +0100
@@ -0,0 +1,226 @@
+/*
+* Copyright (c) 2004 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: LandmarksUi Content File -
+* Base class for application's (view-based) selectors
+*
+*/
+
+
+
+
+
+
+
+#ifndef CLMKAPPLMITEMSELECTORIMPL_H
+#define CLMKAPPLMITEMSELECTORIMPL_H
+
+// INCLUDES
+#include "CLmkAppSelectorImplBase.h"
+#include "MLmkAOOperationObserver.h"
+#include "MLmkLocationObserver.h"
+#include "lmkwaitdlglauncher.h"
+#include <CLmkEditorDlg.h>
+
+// FORWARD DECLARATIONS
+class CLmkLmItemListProvider;
+class CLmkDbUtils;
+class CLmkLocationService;
+class TPosition;
+class CPosLandmark;
+class CLmkSender;
+class CLmkLocSettingsLauncher;
+
+
+// CLASS DECLARATION
+
+/**
+* Base class for application's (view-based) selectors that list items
+* having TPosLmItemId, i.e. using provider of type CLmkLmItemListProvider.
+*/
+class CLmkAppLmItemSelectorImpl
+: public CLmkAppSelectorImplBase,
+ public MLmkAOOperationObserver,
+ public MLmkLocationObserver,
+ public MLmkWaitDialogLauncherObserver
+ {
+ public: // Constructors and destructor
+ /**
+ * Destructor.
+ */
+ ~CLmkAppLmItemSelectorImpl();
+
+ public: // New functions
+ /**
+ * Method for changing an icon of a listbox item. Calls templated
+ * method which should handle subclass-specific details.
+ */
+ void ChangeIconCmdL();
+ // Added for Bug Fix
+ void DiskSpaceBelowCriticalLevelL(
+ TInt aBytesToWrite, TChar aDrive);
+
+ TInt CalculateLandmarkDisksize(
+ const CPosLandmark& aLandmark);
+
+ public: // From CLmkAppSelectorImplBase
+ MLmkListMemento* MementoL();
+ /**
+ * Method to handle change in screen size.
+ * When the icon selection popup is shown screen size changes have to
+ * be propagated to the popup.
+ */
+ void HandleScreenSizeChange();
+
+ TInt CurrentCategoryId();
+
+ public: //from MLmkMapAndNavigationObserver
+ void HandleLmCreated(TPosLmItemId aNewLmkItemId);
+
+ public://from MLmkWaitDialogLauncherObserver
+ void HandleDialogDismissed( TInt aButtonId );
+
+ protected: // From MEikCommandObserver
+ void ProcessCommandL( TInt aCommandId );
+
+ protected: // From MLmkLocationObserver
+ void NotifyL( const TInt aStatus );
+ void NotifyErrorL( TInt aErrorCode );
+
+ protected: // New functions
+ /**
+ * Returns provider reference as CLmkLmItemListProvider type.
+ * @return provider reference
+ */
+ CLmkLmItemListProvider& LmItemListProvider();
+
+ /**
+ * Currently selected item's id
+ * @return TPosLmItemId
+ */
+ TPosLmItemId SelectedIdL();
+
+ /**
+ * Currently marked item ids
+ * @return TPosLmItemId array reference
+ */
+ RArray<TPosLmItemId>& MarkedItemIdsL();
+
+ /**
+ * Template method called by ChangeIconCmdL.
+ * @param aId
+ * @param aIconIndex
+ */
+ virtual void ChangeIconL( TPosLmItemId aId, TInt aIconIndex, TInt aMaskIndex) = 0;
+
+ /**
+ * Template method called by ChangeIconCmdL.
+ * @param aIdArray
+ * @param aIconIndex
+ */
+ virtual void ChangeIconsL( RArray<TPosLmItemId>& aIdArray,
+ TInt aIconIndex, TInt aMaskIndex) = 0;
+
+ IMPORT_C void LaunchPosSettingsL();
+ /**
+ * Initial landmark
+ * @param aLandmark
+ */
+ virtual void InitialLandmarkL( CPosLandmark* /*aLandmark*/ ){}
+
+ /**
+ * Method to change the mark index or indexes after adding
+ * new Landmark.
+ * @param None
+ */
+ void UpdateMarkIndexAfterAdditionL( TInt aIndexToBeSelected );
+ //resolves id, to be focussed after deletion.
+ void StoreIdTobeFocussedAfterDeletion( RArray<TPosLmItemId>& markedItemIds );
+ //sets item to focus after deletion
+ void SetFocusToItemAfterDeletionOfMarkedItems();
+
+ protected: // Constructors and destructor
+ /**
+ * C++ default constructor.
+ */
+ CLmkAppLmItemSelectorImpl( CPosLandmarkDatabase& aDb,
+ CLmkSender& aSender,
+ TBool aFindBox );
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void BaseConstructL();
+
+ private: //new functions
+ /**
+ * Make new landmark
+ */
+ void NewLandmarkCmdL();
+
+ /**
+ * Executes landmark editor with correct parameters for
+ * new landmark creation.
+ * @param aLandmark empty or initialized landmark for editing
+ */
+ void ExecuteNewLandmarkEditorL( CPosLandmark& aLandmark );
+ /**
+ * Request current location
+ */
+ void RequestCurrenLocationL();
+
+ /**
+ * Create new landmark from current location
+ * @param aPosition
+ */
+ void CreateLmkFromCurrentLocationL( const TPosition& aPosition );
+
+ static TInt MessageQueryCallBack( TAny* aPtr );
+
+ protected: // Data
+ ///Ref:
+ CLmkSender& iSender;
+
+ ///Own:
+ CLmkDbUtils* iDbUtils;
+
+ ///Own:
+ CLmkLocationService* iLocationService;
+
+ RArray<TPosLmItemId> iMarkedItemIds;
+
+ // If a new Item is added then the highlight will have to be
+ // adjusted to point to the currently added Item.
+ // For new Landmarks This flag will be set in this class
+ // For new Categories this flag will be set in the derived class
+ // And the flag is used in the respective derived classes.
+ TBool iNewListBoxItemAdded;
+
+ // Own: Pointer to Location Settings Launcher
+ CLmkLocSettingsLauncher* iLauncher;
+
+ //this holds the landmark view dialog
+ CLmkEditorImpl* iDlg;
+
+ /**
+ * Wait dialog launcher
+ * Owns
+ */
+ CLmkWaitDialogLauncher* iWaitDialogLauncher;
+ //item to focus after deletion
+ TPosLmItemId iFocusItemIdAfterDeletion;
+ };
+
+#endif // CLMKAPPLMITEMSELECTORIMPL_H
+
+// End of File