--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiresources_pub/skins_api/inc/AknsControlContext.h Thu Dec 17 09:14:12 2009 +0200
@@ -0,0 +1,266 @@
+/*
+* Copyright (c) 2002-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: Defines a public interface class MAknsControlContext and
+* related enumerations.
+*
+*/
+
+
+#ifndef AKNSCONTROLCONTEXT_H
+#define AKNSCONTROLCONTEXT_H
+
+// INCLUDES
+#include <AknsConstants.h>
+#include <AknsItemID.h>
+#include <coemop.h>
+
+// DATA TYPES
+
+/**
+* Skin parameter types for MAknsControlContext::SupplySkinParameter.
+*
+* @since 2.0
+*/
+enum TAknsCCParameter
+ {
+ // This enumeration is intentionally empty.
+ };
+
+/**
+* Values for skin object types (given as aObject parameter for
+* MAknsControlContext::SupplySkinObject).
+*
+* @since 2.0
+*/
+enum TAknsCCObject
+ {
+
+ /**
+ * Item ID for layout background.
+ *
+ * MAknsControlContext::SupplySkinObject
+ * should return a pointer to TAknsBackground or @c NULL (default used).
+ *
+ * @since 2.0
+ */
+ EAknsCCOBackground = 0,
+
+ /**
+ * Pointer to parent context.
+ *
+ * MAknsControlContext::SupplySkinObject
+ * should return a pointer to the parent context (of type
+ * @c MAknsControlContext) or @c NULL (no parent context).
+ *
+ * @since 2.6
+ */
+ EAknsCCOParentContext = 1
+ };
+
+/**
+* Control context type enumeration.
+*
+* @since 2.0
+*/
+enum TAknsControlContextType
+ {
+
+ /**
+ * Unknown type. The control context can only be assumed to be compatible
+ * with MAknsControlContext.
+ *
+ * @since 2.0
+ */
+ EAknsControlContextTypeUnknown = 0,
+
+ /**
+ * The control context type for CAknsBasicBackgroundControlContext
+ * (and derived types).
+ *
+ * @since 2.0
+ */
+ EAknsControlContextTypeBasic = 1,
+
+ /**
+ * The control context type for CAknsLayeredBackgroundControlContext
+ * (and derived types).
+ *
+ * @since 2.0
+ */
+ EAknsControlContextTypeLayered = 2,
+
+ /**
+ * The control context type for CAknsListBoxBackgroundControlContext
+ * (and derived types).
+ *
+ * @since 2.0
+ */
+ EAknsControlContextTypeListBox = 3,
+
+ /**
+ * The control context type for CAknsFrameBackgroundControlContext
+ * (and derived types).
+ *
+ * @since 2.0
+ */
+ EAknsControlContextTypeFrame = 4,
+
+ /**
+ * The control context type for CAknsCombinedBackgroundControlContext
+ * (and derived types).
+ *
+ * @since 3.2
+ */
+ EAknsControlContextTypeCombined = 5,
+
+ /**
+ * The control context type for CAknsMaskedFrameBackgroundControlContext
+ * (and derived types).
+ *
+ * @since 3.2
+ */
+ EAknsControlContextTypeMasked = 6
+ };
+
+// CLASS DECLARATIONS
+
+/**
+* Interface that provides context specific skin parameters.
+* This interface is used by AknsDrawUtils to query context specific parameters,
+* such as background override. Application should instantiate a class that
+* implements this interface and provide pointer to it using
+* @c MObjectProvider::MopSupplyObject in the appropriate control.
+*
+* This is a public class with exported functions.
+* The class is not intended for user derivation - concrete classes implementing
+* the interface are provided by the library. See
+* @c CAknsBasicBackgroundControlContext and
+* @c CAknsListBoxBackgroundControlContext for further details.
+*
+* @lib AknSkins.lib
+*
+* @since 2.0
+*/
+class MAknsControlContext
+ {
+ public: // Type UID
+ /**
+ * Type ID declaration.
+ * Type ID is used to make it possible to retrieve control context
+ * through @c MObjectProvider::MopSupplyObject interface.
+ */
+ DECLARE_TYPE_ID(0x10005a29)
+
+ public: // Destructor
+
+ /**
+ * Destructor.
+ * Destructor is provided only to enable deletion using base class
+ * pointer. Caller should never delete control context retrieved through
+ * @c MObjectProvider interface.
+ */
+ inline virtual ~MAknsControlContext() {}
+
+ public: // New functions
+
+ /**
+ * Provides context specific integer parameter.
+ *
+ * @since 2.0
+ *
+ * @param aParam Type of the parameter to be retrieved. Possible values
+ * are defined in ::TAknsCCParameter enumeration.
+ *
+ * @return Integer value as defined in ::TAknsCCParameter for the
+ * particular parameter. For unknown or unhandled values zero must be
+ * returned.
+ */
+ virtual TInt SupplySkinParameter( TAknsCCParameter aParam ) =0;
+
+ /**
+ * Provides context specific object.
+ *
+ * @since 2.0
+ *
+ * @param aObject Type of the object to be retrieved. Possible values
+ * are defined in ::TAknsCCObject enumeration.
+ *
+ * @return Pointer to object as defined in ::TAknsCCObject for that
+ * specific aObject parameter value. For unknown or unhandled values
+ * @c NULL must be returned.
+ */
+ virtual TAny* SupplySkinObject( TAknsCCObject aObject ) =0;
+
+ /**
+ * Determines whether this control context is compatible with the
+ * given derived type.
+ *
+ * @since 2.0
+ *
+ * @param aType Type of the derived control context class (one of
+ * the values in TAknsControlContextType).
+ *
+ * @return ETrue if this control context instance is compatible with
+ * the given type (i.e. can be casted to the corresponding concrete
+ * class). EFalse otherwise.
+ */
+ virtual TBool IsCompatibleWithType(
+ const TAknsControlContextType aType ) const =0;
+
+ /**
+ * Updates the control context, if necessary.
+ * This method is called by the framework before drawing with the
+ * context.
+ *
+ * Base class implementation returns 0.
+ *
+ * @since 2.6
+ *
+ * @return Return value reserved for future use. Currently returns 0.
+ */
+ virtual TInt UpdateContext();
+
+ protected: // Reserved virtual functions
+
+ /**
+ * Reserved for future use.
+ *
+ * @since 2.0
+ */
+ virtual TInt Reserved2();
+
+ public: // New functions
+
+ /**
+ * Returns type UID pointer that can be used in MopSupplyObject.
+ *
+ * @since 2.0
+ *
+ * @param aId Type UID, should be the same that was given as aId
+ * parameter of MopSupplyObject.
+ *
+ * @param aContext Pointer to an MAknsControlContext instance.
+ *
+ * @return Type UID pointer containing aContext, or @c NULL type UID
+ * pointer if given type UID does not match MAknsControlContext or
+ * aContext is @c NULL.
+ */
+ IMPORT_C static TTypeUid::Ptr SupplyMopObject( TTypeUid aId,
+ MAknsControlContext* aContext );
+
+ };
+
+#endif // AKNSCONTROLCONTEXT_H
+
+// End of File