--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluicontroller/inc/aixuikoneventhandler.h Thu Dec 17 08:40:49 2009 +0200
@@ -0,0 +1,176 @@
+/*
+* Copyright (c) 2005-2007 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: Used for handling XUIKON events
+*
+*/
+
+
+#ifndef C_EVENTHANDLER_H
+#define C_EVENTHANDLER_H
+
+#include <e32base.h>
+
+#include "xnvolumecontrolobserver.h"
+#include "xnvolumecontrol.h"
+
+class CXnNodeAppIf;
+class CXnProperty;
+class MAiFwEventHandler;
+class MAiStrParser;
+class TXnUiEngineAppIf;
+class CXnDomNode;
+
+namespace AiXmlUiController
+{
+
+class CXmlUiController;
+class CContentRenderer;
+class MAiUiEventHandler;
+class MAiApplicationEventHandler;
+
+/**
+ * @ingroup group_xmluicontroller
+ *
+ * This class is used for handling XUIKON events.
+ *
+ * Events described in Content Model are handled in here. This class parses
+ * the events and decides what to do with them. Events are either consumed in
+ * UI or in case of a plug-in event forwarded to XML AI Framework for further
+ * processing.
+ *
+ * @lib AiXmlUiMain
+ */
+class CAIXuikonEventHandler : public CBase,
+ public MXnVolumeControlObserver
+ {
+public:
+
+ static CAIXuikonEventHandler* NewL(CXmlUiController& aXmlUiController,
+ CContentRenderer& aRenderer);
+ ~CAIXuikonEventHandler();
+
+ /**
+ * Handle interaction notification from XUIKON UI engine.
+ *
+ * @see CXnAppUiAdapter::HandleXuikonEventL
+ */
+ void HandleXuikonEventL( CXnNodeAppIf& aOrigin,
+ CXnNodeAppIf& aTrigger,
+ CXnDomNode& aTriggerDefinition,
+ CXnDomNode& aEvent );
+
+ /**
+ * Set handler for plug-in events
+ * @param aPluginEventHandler Pointer to event handler
+ */
+ void SetFwEventHandler( MAiFwEventHandler* aPluginEventHandler );
+
+ /**
+ * Set handler for UI events
+ * @param aUiEventHandler Pointer to event handler
+ */
+ void SetUiEventHandler( MAiUiEventHandler* aUiEventHandler );
+
+ /**
+ * Set handler for application events
+ * @param aApplicationEventHandler Pointer to event handler
+ */
+ void SetApplicationEventHandler( MAiApplicationEventHandler*
+ aApplicationEventHandler );
+
+// from MXnVolumeControlObserver
+
+ /**
+ * Called when volume value is changed.
+ */
+ void VolumeChanged( TInt aValue );
+
+private:
+ CAIXuikonEventHandler(CXmlUiController& aUiController,
+ CContentRenderer& aRenderer);
+
+ void ConstructL();
+
+ TBool HandleSystemEventL( const TDesC8& aEventText, CXnDomNode& aEvent );
+
+ TBool HandleUiEventL( const TDesC8& aEventText, CXnNodeAppIf& aOrigin );
+
+ TBool HandleApplicationEventL( const TDesC8& aEventText );
+
+ void DispatchEventL( CXnDomNode& aEvent,
+ CXnNodeAppIf& aOrigin,
+ CXnDomNode& aTriggerDefinition );
+
+ void HandlePluginEventL( CXnDomNode& aEvent );
+
+ void ParseParameterStringL(const TDesC8& aSourcePtr, TPtrC8& aTargetPtr);
+
+private: // data
+
+ class CNullEventHandler;
+
+ /**
+ * String parser utility. Own.
+ */
+ MAiStrParser* iStrParser;
+
+ /**
+ * Reference to XML ui controller.
+ */
+ CXmlUiController& iUiController;
+
+ /**
+ * Reference to content renderer.
+ */
+ CContentRenderer& iContentRenderer;
+
+ /**
+ * Null event handler.
+ */
+ CNullEventHandler* iNullEventHandler;
+
+ /**
+ * Plug-in event handler.
+ * Doesn't own.
+ */
+ MAiFwEventHandler* iFwEventHandler;
+
+ /**
+ * UI event handler.
+ * Doesn't own.
+ */
+ MAiUiEventHandler* iUiEventHandler;
+
+ /**
+ * Application event handler.
+ * Doesn't own.
+ */
+ MAiApplicationEventHandler* iApplicationEventHandler;
+
+ /**
+ * Volume control event.
+ * Owned.
+ */
+ HBufC* iVolumeEvent;
+
+ /**
+ * Volume control interface.
+ * Not owned.
+ */
+ XnVolumeControlInterface::MXnVolumeControlInterface* iVolumeControl;
+ };
+
+} // namespace AiXmlUiController
+
+#endif // C_EVENTHANDLER_H