inc/alf/alfattributevaluetype.h
changeset 0 e83bab7cf002
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/alf/alfattributevaluetype.h	Thu Dec 17 08:56:02 2009 +0200
@@ -0,0 +1,167 @@
+/*
+* Copyright (c) 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:  attribute value type header.
+*
+*/
+
+
+#ifndef ALFATTRIBUTEVALUETYPE_H
+#define ALFATTRIBUTEVALUETYPE_H
+
+#include <osn/osndefines.h>
+#include <memory>
+#include <alf/alfmetric.h>
+
+namespace osncore
+    {
+class UString;
+    }
+using namespace osncore;
+using std::auto_ptr;
+
+namespace Alf
+    {
+
+class AlfAttributeValueTypeImpl;
+
+/**
+ *  @class AlfAttributeValueType alfattributevaluetype.h "alf/alfattributevaluetype.h"
+ *  A class for attribute value type. Attributes are constructed using 
+ *  AlfAttributeValueType objects. AlfAttributeValueType can store integer,float,string,
+ *  enum and RGB data.   
+ *  @see AlfAttribute
+ * 
+ *  @lib alfwidgetmodel.lib
+ *  @since S60 ?S60_version
+ *  @status Draft
+ */
+class AlfAttributeValueType
+    {
+
+public:
+
+    /** Type enumeration. */
+    enum Type
+        {
+        EInt, EFloat, EString
+        };
+
+    /**
+     * Constructor.
+     * @exception std::bad_alloc
+     *
+     * @param aValue The value of the attribute.
+     * @param aUnit Unit of the value.
+     */
+    OSN_IMPORT AlfAttributeValueType(int aValue,
+                                     TAlfUnit aUnit = EAlfUnitPixel);
+
+    /**
+     * Constructor.
+     * @exception std::bad_alloc
+     *
+     * @param aValue The value of the attribute.
+     * @param aUnit Unit of the value.
+     */
+    OSN_IMPORT AlfAttributeValueType(float aValue,
+                                     TAlfUnit aUnit = EAlfUnitNormalized);
+
+    /**
+     * Constructor.
+     * @exception std::bad_alloc     
+     *
+     * @param aValue The value of the attribute. Takes a copy of the object.
+     */
+    OSN_IMPORT AlfAttributeValueType(const UString& aValue);
+
+    /**
+     * Destructor.
+     */
+    OSN_IMPORT virtual ~AlfAttributeValueType();
+
+    /**
+     * Gets the enum value.
+     * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidAttributeValue
+     *                                      if the attribute value type is not of enum type. 
+     *
+     * @return The integer value.
+     */
+    OSN_IMPORT virtual int enumValue() const;
+
+    /**
+     * Gets the string value.
+     * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidAttributeValue
+     *                                      if the attribute value type is not of string type. 
+     *
+     * @return The string value.
+     */
+    OSN_IMPORT virtual const UString& stringValue() const;
+
+    /**
+     * Gets the integer value.
+     * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidAttributeValue
+     *                                      if the attribute value type is not of integer type. 
+     *
+     * @return The integer value.
+     */
+    OSN_IMPORT virtual int intValue() const;
+
+    /**
+     * Gets the real value.
+     * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidAttributeValue
+     *                                      if the attribute value type is not of float type. 
+     *
+     * @return The real value.
+     */
+    OSN_IMPORT virtual float realValue() const;
+
+    /**
+     * Gets the RGB value.
+     * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidAttributeValue
+     *                                      if the attribute value type is not of float type. 
+     *
+     * @return The RGB value.
+     */
+    OSN_IMPORT virtual float rgbValue() const;
+
+    /**
+     * Gets the type of the attribute value.
+     *
+     * @return The type of the attribute value.
+     */
+    OSN_IMPORT virtual Type type() const;
+
+    /**
+     * Gets the unit of the value.
+     *
+     * @return The unit of the value.
+     */
+    OSN_IMPORT virtual TAlfUnit unit() const;
+
+protected:
+
+    /**
+     * Constructor.
+     */
+    AlfAttributeValueType();
+
+private:    // data
+
+    auto_ptr<AlfAttributeValueTypeImpl> mData;
+
+    };
+
+    } // namespace Alf
+
+#endif // ALFATTRIBUTEVALUETYPE_H