--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlefw/plugins/shortcutplugin/inc/caiscutshortcutext.h Thu Dec 17 08:54:17 2009 +0200
@@ -0,0 +1,164 @@
+/*
+* Copyright (c) 2005-2006 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: Shortcut plug-in shortcut extensions
+*
+*/
+
+
+#ifndef CAISCUTSHORTCUTEXT_H
+#define CAISCUTSHORTCUTEXT_H
+
+#include <e32base.h>
+#include <badesca.h>
+#include <aicontentpublisher.h>
+
+#include "caiscutshortcut.h"
+#include "mpopupeventhandleractions.h"
+
+class CPopupEventHandler;
+class MAiScutExtData;
+
+/**
+ *
+ * The class extends CAiScutShortcut by offering means to store
+ * changeable popup text lines. The class overrides content publishing
+ * functions from base class.
+ *
+ * @since S60 v3.2
+ */
+class CAiScutShortcutExt : public CAiScutShortcut,
+ public MPopupEventHandlerActions
+ {
+ public:
+ /**
+ * Factory function
+ * @see CAiScutShortcut
+ * @since S60 v3.2
+ */
+ static CAiScutShortcutExt* NewL( TInt aId, const TDesC& aTarget,
+ CAiScutEngine& aEngine );
+
+ /**
+ * Factory function
+ * @see CAiScutShortcut
+ * @since S60 v3.2
+ */
+ static CAiScutShortcutExt* NewLC( TInt aId, const TDesC& aTarget,
+ CAiScutEngine& aEngine );
+
+ /**
+ * Destructor
+ * @since S60 v3.2
+ */
+ ~CAiScutShortcutExt();
+
+ private:
+ CAiScutShortcutExt( TInt aId, CAiScutEngine& aEngine );
+ void ConstructL( const TDesC& aTarget );
+
+ public: // New functions
+ /**
+ * @return Definition string of active target
+ * @since S60 v3.2
+ */
+ TPtrC ActiveTargetDefinition() const;
+
+ /**
+ * Handles events (e.g. gain/lost focus) from AI framework
+ * @param aEvent Event
+ * @since S60 v3.2
+ */
+ void HandleAIEventL( TInt aEvent );
+
+ /**
+ * Handles Resumed event
+ * @param aResumeReason Resume reason
+ * @since S60 v3.2
+ */
+ void HandleResumed( TAiTransitionReason aResumeReason );
+
+ /**
+ * Set extension data
+ * @param aAiScutExtData Pointer to new extension data
+ * @since S60 v3.2
+ */
+ void SetAiScutExtData( const MAiScutExtData* aAiScutExtData );
+
+
+ private: // From CAiScutShortcut
+ void PublishL( MAiPropertyExtension& aPlugin,
+ MAiContentObserver& aObserver );
+
+ TInt PublishCaption( MAiPropertyExtension& aPlugin,
+ MAiContentObserver& aObserver, TInt aCaptionContentId) const;
+
+ void PublishPopupText( MAiPropertyExtension& aPlugin,
+ MAiContentObserver& aObserver ) const;
+
+ TInt PublishIcon( MAiPropertyExtension& aPlugin,
+ MAiContentObserver& aObserver, TInt aIconContentId );
+
+ private: // From MPopupEventHandlerActions
+ void IssuePublishShortcut();
+
+ private: // data
+
+ /**
+ * Extension data
+ * Ref.
+ */
+ const MAiScutExtData* iAiScutExtData;
+
+ /**
+ * Flag that tells whether to publish or clean the popup text box.
+ * The flag is controlled by iPopupEventHandler
+ * Own.
+ */
+ //TBool iPublishLineArray;
+
+ /**
+ * Handler of various events, includes state machine
+ * Own.
+ */
+ CPopupEventHandler* iPopupEventHandler;
+
+ /**
+ * Pointer to previous popup line array. This is used detect changes
+ * in data.
+ * Ref.
+ */
+ const MDesCArray* iPreviousPopupLineArray;
+
+ /**
+ * Pointer to previous icon. This is used detect changes
+ * in data.
+ * Ref.
+ */
+ const CGulIcon* iPreviousIcon;
+
+ /**
+ * Has the icon changed
+ */
+ TBool iIconChanged;
+
+ /**
+ * Has the text changed
+ */
+ TBool iTextChanged;
+
+ };
+
+#endif // CAISCUTSHORTCUTEXT_H
+
+// End of File.