--- a/inc/alf/alfelement.h Tue Feb 02 00:28:09 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,423 +0,0 @@
-/*
-* 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: The interface and the basic implementation for presentation elements.
-*
-*/
-
-
-#ifndef ALFELEMENT_H
-#define ALFELEMENT_H
-
-#include <osn/osndefines.h>
-#include <memory>
-#include <alf/ialfelement.h>
-#include <osn/alfptrvector.h>
-
-using osncore::AlfPtrVector;
-using std::auto_ptr;
-
-class CAlfVisual;
-class CAlfLayout;
-
-namespace Alf
- {
-class CAlfWidgetControl;
-class IAlfVariantType;
-class AlfReferenceToVisual;
-class IAlfVisualTemplate;
-class AlfElementImpl;
-class IfId;
-
-/** @class AlfElement alfelement.h "alf/alfelement.h"
- * The implementation of a generic element. Elements can be used,
- * e.g., from declaration, to describe a specific part of
- * the presentation of a component. The presentation may
- * be predefined, or it may depend on the component data.
- *
- * @lib alfwidgetmodel.lib
- * @since S60 ?S60_version
- * @status Draft
- * @interfaces IAlfAttributeOwner, IAlfElement
- * @attributes duiuimodel::tactileattributes::KEventInput\n
- * duiuimodel::tactileattributes::KFeedbackType\n
- * duiuimodel::commonvisualattributes::KOpacity\n
- * duiuimodel::layoutattributes::KPositionX\n
- * duiuimodel::layoutattributes::KPositionY\n
- * duiuimodel::layoutattributes::KWidth\n
- * duiuimodel::layoutattributes::KHeight\n
- * duiuimodel::layoutattributes::KMaxWidth\n
- * duiuimodel::layoutattributes::KMaxHeight\n
- * duiuimodel::layoutattributes::KMinWidth\n
- * duiuimodel::layoutattributes::KMinHeight
- */
-class AlfElement : public IAlfElement
- {
-public:
-
-
- /**
- * Static cnstructor. The new element is left on the cleanup stack.
- *
- * @since S60 ?S60_version
- * @param aControl The owner control.
- * @param aName The name of the element.
- * @return New object. Should be added to the control.
- */
- OSN_IMPORT AlfElement(CAlfWidgetControl& aControl, const char* aName);
-
- /**
- * Destructor.
- */
- OSN_IMPORT virtual ~AlfElement();
-
- /**
- * Returns name of element set via Constructor.
- *
- * @since S60 ?S60_version
- * @return name of element.
- */
- OSN_IMPORT const char* name() const;
-
- /**
- * Creates a visual tree in given element.
- *
- * @since S60 ?S60_version
- * @param aElement Element for which visual tree will be created
- * @param aChildData Data for visual tree to be created
- * @param aData Data for parent visual tree
- * @param aIndex Position in parent layout at which new visual tree will be added
- * @param aDataID Parent visual tree's data id
- */
- OSN_IMPORT virtual void createChildVisualTree( IAlfElement* aElement,
- IAlfVariantType& aChildData,
- IAlfBranch& aData,
- int aIndex, uint aDataID );
-
- /**
- * Creates a visual tree with the data given for visuals.
- *
- * @exception osncore::AlfElementException Thrown with the error code osncore::EInvalidElement\n
- * when creation of visual tree fails.
- * @since S60 ?S60_version
- * @param aChildData Data for visual tree to be created
- * @param aParentData Data for parent visual tree
- * @param aIndex Position in parent layout at which new visual tree will be added
- * @param aParentDataID Parent visual tree's data id
- * @param aParentLayout Parent layout to which newly created visual tree will be added
- * @param aLayoutIndex Position in parent layout at which new visual tree will be added
- */
- OSN_IMPORT virtual CAlfVisual* createVisualTree(
- IAlfVariantType& aChildData, IAlfBranch& aParentData, int aIndex,
- uint aParentDataID, CAlfLayout* aParentLayout, int aLayoutIndex );
-
- /**
- * Creates a visual tree with the data given for visuals.
- *
- * @exception std::bad_alloc
- * @exception osncore::AlfVisualException Thrown with the error code osncore::ECanNotCreateVisual\n
- * when creation of visual fails.
- * @exception osncore::AlfVisualException Thrown with the error code osncore::EInvalidElement\n
- * when wrond data id is supplied.
- * @exception std::bad_alloc
- * @since S60 ?S60_version
- * @param aData Data for visual tree to be created
- * @param aDataID Parent visual tree's data id
- * @param aParentLayout Parent layout to which newly created visual tree will be added
- * @param aLayoutIndex Position in parent layout at which new visual tree will be added
- */
- OSN_IMPORT virtual CAlfVisual* createVisualTree(
- IAlfVariantType& aData, uint aDataID,
- CAlfLayout* aParentLayout, int aLayoutIndex );
-
- /**
- * Removes visual tree from given element.
- *
- * @since S60 ?S60_version
- * @param aElement Element from which visual tree is to be removed
- * @param aData
- * @param aIndex
- * @param aDataID
- */
- OSN_IMPORT virtual void removeChildVisualTree( IAlfElement* aElement,
- IAlfBranch& aData,
- int aIndex, uint aDataID );
-
- /**
- * Removes visual tree.
- *
- * @exception osncore::AlfVisualException Thrown with the error code osncore::EInvalidElement\n
- * when removal of visual tree fails.
- * @since S60 ?S60_version
- * @param aParentData
- * @param aIndex
- * @param aParentDataID
- */
- OSN_IMPORT virtual void removeVisualTree( IAlfBranch& aParentData,
- int aIndex, uint aParentDataID );
-
- /**
- * Removes visual tree.
- *
- * @exception osncore::AlfVisualException Thrown with the error code osncore::EInvalidElement\n
- * when removal of visual tree fails.
- * @since S60 ?S60_version
- * @param aData
- * @param aDataID
- */
- OSN_IMPORT virtual void removeVisualTree( IAlfVariantType& aData,
- uint aDataID );
-
- /**
- * Updates the visual tree.
- *
- * @exception osncore::AlfVisualException Thrown with the error code osncore::EInvalidElement\n
- * when a visual can not be created.
- * @since S60 ?S60_version
- * @param aNewData
- * @param aOldData
- * @param aDataID
- */
- OSN_IMPORT virtual void updateVisualTree( IAlfVariantType& aNewData,
- IAlfVariantType& aOldData,
- uint aDataID );
-
- /**
- * Replaces the visual tree.
- *
- * @exception osncore::AlfVisualException Thrown with the error code osncore::EInvalidElement\n
- * when old data id is wrong.
- * @since S60 ?S60_version
- * @param aData
- * @param aDataID
- * @param aOldDataID
- */
- OSN_IMPORT void replaceVisualTree( IAlfVariantType& aData,
- uint aDataID, uint aOldDataID );
-
- /**
- * Add a new visual tree to the element.
- * Used by derived classes.
- *
- * @exception osncore::AlfVisualException Thrown with the error code osncore::EInvalidElement\n
- * when either the visual is NULL or data id is wrong.
- * @exception std::bad_alloc
- * @since S60 ?S60_version
- * @param aVisualTree visual to be appended.
- * @param aDataID data id of the visual.
- */
- OSN_IMPORT void addVisualTree(CAlfVisual* aVisualTree, uint aDataID);
-
- /**
- * Updates the Data ids in an the element.
- *
- * @since S60 ?S60_version
- * @param aParentBranch Data in which IDs to be updated
- * @param aStartIndex Index from which IDs to be updated
- * @param aOffset Amount by which IDs are increased/decreased
- * @param aOldParentDataId Not used.
- * @param aParentDataID Parent data id of the element
- */
- OSN_IMPORT void updateDataIDs( IAlfBranch& aParentBranch, int aStartIndex,
- int aOffset, uint aOldParentDataId, uint aParentDataID );
-
- /**
- * Returns the default parent layout of visual tree in an element.
- *
- * @exception osncore::AlfVisualException Thrown with the error code osncore::EInvalidVisual\n
- * when wrong data id is supplied.
- * @since S60 ?S60_version
- * @param aParentDataIS
- * @return Parent layout
- */
- OSN_IMPORT CAlfLayout* defaultParentLayout(uint aParentDataID);
-
- /**
- * Set reference to the default parent layout.
- *
- * @since S60 ?S60_version
- * @param aReference The reference to the default parent layout.
- */
- OSN_IMPORT void setDefaultParentLayout(AlfReferenceToVisual* aReference);
-
- /**
- * Finds visual with the given name and id in visual tree of element.
- *
- * @since S60 ?S60_version
- * @param aName Name of the visual
- * @param aDataID Data id of the visual
- * @return Visual.Returns NULL if no matching visual is found.
- */
- OSN_IMPORT CAlfVisual* findVisual(const char* aName, uint aDataID);
-
- /**
- * Get visual from the data id.
- *
- * @since S60 ?S60_version
- * @param aDataID data id of the visual.
- */
- OSN_IMPORT CAlfVisual* findVisual(uint aDataID);
-
- /**
- * Returns the data id of given visual.
- *
- * @since S60 ?S60_version
- * @param aVisual Reference to visual whose data id is needed.
- * @return Data id of the visual
- */
- OSN_IMPORT uint dataID(const CAlfVisual& aVisual) const;
-
- /**
- * Returns parent element of the element.
- *
- * @since S60 ?S60_version
- * @return Parent element. NULL, if there is no parent element.
- */
- OSN_IMPORT const IAlfElement* parentElement() const;
-
- /**
- * Makes the element child of given element.
- *
- * @since S60 ?S60_version
- * @param aParent Parent element.
- */
- OSN_IMPORT void setParentElement(IAlfElement& aParent);
-
- /**
- * Sets the visual template for the element. This element
- * will acquire ownership of the visual template hierarchy
- * under the given visual template.
- * Call to this method cannot throw an exception.
- *
- * @since S60 ?S60_version
- * @param aTemplate Root of the visual template hierarchy to be set
- * into the widget element.
- */
- OSN_IMPORT void setVisualTemplate(IAlfVisualTemplate& aTemplate) throw();
-
- /**
- * Returns the root visual template of the visual template hierarchy
- * owned by this element. Call to this method cannot throw an exception.
- *
- * @since S60 ?S60_version
- * @param aType A descriptor to identify the type of the queried interface.
- * @return The queried interface, or NULL if the interface is not
- * supported or available.
- */
- OSN_IMPORT IAlfVisualTemplate* getVisualTemplate() const throw();
-
- /**
- * Destroyes the visual template object assigned to this element and the whole
- * visual template hierarchy under it.
- *
- * @since S60 ?S60_version
- */
- OSN_IMPORT void destroyVisualTemplate() throw();
-
- /**
- * Removes the visual template from this element. Returns pointer to the removed visual
- * template object. The ownership of the visual template object is transferred to the
- * caller. Call to this method cannot throw an exception.
- *
- * @since S60 ?S60_version
- */
- OSN_IMPORT IAlfVisualTemplate* removeVisualTemplate() throw();
-
- /**
- * Getter for the type identifier of this class.
- *
- * @since S60 ?S60_version
- * @return A descriptor to identify the type of this class.
- */
-
- /**
- * Template getter for interfaces provided by the element classes.
- * The type of the queried interface is specified by the
- * template parameter.
- *
- * @since S60 ?S60_version
- * @param aElement The element to get the interface for.
- * @return The queried interface, or NULL if the interface is not
- * supported or available.
- */
- template <class T>
- static T* makeInterface( AlfElement* aElement );
-
-// from base class IAlfInterfaceBase
-
- /**
- * From IAlfInterfaceBase.
- * Getter for interfaces provided by the element classes.
- * Derived classes should always call the base class method
- * from the overridden MakeInterface.
- *
- * @since S60 ?S60_version
- * @param aType A descriptor to identify the type of the queried interface.
- * @return The queried interface, or NULL if the interface is not
- * supported or available.
- */
- OSN_IMPORT virtual IAlfInterfaceBase* makeInterface( const IfId& aType );
-
- /**
- * removes and destroys all the visuals in the element.
- *
- * @since S60 ?S60_version
- * @param aTimeMilliseconds the animation time for remove.
- */
- OSN_IMPORT void removeAndDestroyVisuals( int aTimeMilliseconds );
-
- /**
- * from IAlfElement
- */
- OSN_IMPORT bool contains(CAlfVisual& aVisual) const;
-
-protected:
-
- /**
- * The protected constructor.
- *
- * @since S60 ?S60_version
- */
- OSN_IMPORT AlfElement();
-
- /**
- * The second phase constructor.
- * The element is added to the control.
- *
- * @exception std::bad_alloc
- * @since S60 ?S60_version
- * @param aControl The owner control.
- * @param aName The name of the element.
- */
- OSN_IMPORT void construct( CAlfWidgetControl& aControl, const char* aName );
-
- /**
- * APi to get the control containing the element.
- *
- * @since S60 ?S60_version
- */
- OSN_IMPORT CAlfWidgetControl& control();
-
-private:
-
- int findFromArray( uint aDataID ) const;
-
-private: // data
-
- auto_ptr<AlfElementImpl> mData;
- };
-
-#include "alf/alfelement.inl"
-
- } // namespace Alf
-#endif // ALFELEMENT_H