--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/lcdui_akn/javalcdui/inc/MMIDCustomComponent.h Wed Sep 01 12:33:18 2010 +0100
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2009 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:
+*
+* Defines an interface for LCDUI custom components
+*
+*/
+
+
+#ifndef MMIDCUSTOMCOMPONENT_H
+#define MMIDCUSTOMCOMPONENT_H
+
+// EXTERNAL INCLUDES
+#include <e32std.h>
+
+// FORWARD DECLARATIONS
+class CCoeControl;
+
+/**
+ * Interface for LCDUI custom components.
+ *
+ * This interface can be used to interact as a custom UI component
+ * in LCDUI components that implement a container for custom
+ * components.
+ *
+ * The client can use this interface to access information about
+ * UI controls that the implementing class provides.
+ *
+ * @lib lcdui
+ * @since S60 5.0
+ */
+class MMIDCustomComponent
+{
+public: // new types
+ /**
+ * Datatype indicates what change was made.
+ */
+ enum TChange
+ {
+ EFullscreenChange,
+ EResolutionChange,
+ EPartialVKBChange,
+ EForegroundGained
+ };
+
+public: // New methods
+ /**
+ * Returns the count of controls in this custom component.
+ *
+ * Note that the count must not change during the lifetime
+ * of the object. The count of all components is updated
+ * when it is added to the custom component container.
+ *
+ * This is done in order to improve the performance when counting
+ * countrols.
+ *
+ * @return The count of controls in this custom component.
+ * @since S60 5.0
+ */
+ virtual TInt CustomComponentControlCount() const = 0;
+
+ /**
+ * Returns an UI control of this custom component.
+ *
+ * The index specifies which component is requested. The method
+ * works similar to CCoeControl::ComponentControl() method. The
+ * ownership of the control is NOT transferred to the caller.
+ *
+ * @param aIndex The index of the control to be retrieved.
+ * @return The UI control of this custom component.
+ * @since S60 5.0
+ */
+ virtual CCoeControl* CustomComponentControl(TInt aIndex) = 0;
+
+ /**
+ * Indicates that the container is about to be disposed.
+ *
+ * The custom component does not have to remove itself
+ * from the container since the container removes all components
+ * when disposing.
+ *
+ * @since S60 5.0
+ */
+ virtual void CustomComponentContainerDisposing() = 0;
+
+ /**
+ * Indicates if traversal can be done.
+ *
+ * Used when changing focus by key down and up.
+ *
+ * @param aEvent Key Event.
+ * @since S60 5.0
+ */
+ virtual void TraverseL(const TKeyEvent& aEvent) = 0;
+
+ /**
+ * Processes the received pointer event.
+ *
+ * @param aPointerEvent The pointer event. iPosition will be reset to the
+ * parent window position. iParentPosition will be invalid for the
+ * container.
+ * @since S60 5.0
+ */
+ virtual void ProcessPointerEventL(const TPointerEvent& aPointerEvent) = 0;
+
+ /**
+ * Gets the current touch-enabled state
+ *
+ * @return true if the component is touch-enabled, false otherwise
+ * @since S60 5.0
+ */
+ virtual TBool IsTouchEnabled() = 0;
+
+ /**
+ * Handles fullscreen state of parent Canvas.
+ *
+ * @since S60 5.0
+ */
+ virtual void HandleFullscreenModeChange() = 0;
+
+ /**
+ * Handles system resource change messages.
+ *
+ * @param aType A message UID value.
+ *
+ * @since S60 5.0
+ */
+ virtual void HandleResourceChange(TInt aType) = 0;
+
+ /**
+ * Handles switching from foreground to background and vice versa.
+ *
+ * @param aForeground Flag if it switches to foreground or to backgound.
+ *
+ * @since S60 5.0
+ */
+ virtual void HandleForeground(TBool aForeground) = 0;
+
+protected: // Destructor
+
+ /**
+ * Destructor. Disallows destruction through this interface
+ */
+ virtual ~MMIDCustomComponent() {}
+};
+
+#endif // MMIDCUSTOMCOMPONENT_H
+
+// End of file