diff -r 4ea6f81c838a -r 0e9bb658ef58 mulwidgets/alfscrollbarwidget/inc/ialfscrollbarbaseelementinternal.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mulwidgets/alfscrollbarwidget/inc/ialfscrollbarbaseelementinternal.h Wed Sep 01 12:23:18 2010 +0100 @@ -0,0 +1,137 @@ +/* +* 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: interface for the scrollbar base element internal functions. +* +*/ + +#ifndef I_ALFSCROLLBARBASEELEMENTINTERNAL_H +#define I_ALFSCROLLBARBASEELEMENTINTERNAL_H + +//Widget Model include +#include + +//Toolkit include +#include + +namespace Alf + { + +/** + * @namespace alfscrollbarbaseelementinternal + * + * ident specifies the unique identifier for the scrollbar base-element + * internal interface. + */ +namespace alfscrollbarbaseelementinternal + { + static const IfId ident = + { + 0,"scrollbarbaseelementinternal" + }; + } + +/** + * An internal interface to be used by custom scrollbar base element writer. + * + * An interface which should be implemented by all the base elements of + * scrollbar (e.g. AlfScrollBarDefaltBaseElement, AlfScrollBarArrowBAseElement, + * AlfScrollBarDefaltLctBaseElement). The interface is exported for the + * developers who wants to create their custom scrollbar base element. + * The functions of this interface are not supposed to be called by scrollbar + * widget users directly. These functions are called by different part of + * scrollbar widget (e.g. scrollbar control, long tap pointer event timer). + * + */ +class IAlfScrollBarBaseElementInternal : public IAlfInterfaceBase + { + +public: + + /** + * Getter for the type identifier of this interface. + * Usage: + * @code + * IAlfElement* element; + * IAlfScrollBarBaseElementInternal* elementInternal = + * static_cast ( + * element->makeInterface (IAlfScrollBarBaseElementInternal::type() ) ); + * @endcode + * @see \link IAlfInterfaceBase \endlink for + * \link IAlfInterfaceBase::makeInterface \endlink + * The above code provides all the interfaces of ScrollBar base element. + * @since S60 ?S60_version + * @return Identifier of this interface. + */ + static inline const IfId& type() + { + return alfscrollbarbaseelementinternal :: ident; + } + + /** + * baseLayoutSizeChanged. + * This function is called by scrollbar control to notify scrollbar base + * element the base layout size has been changed ( and so the base element + * should relayout its internal visualization). + * + * @since S60 ?S60_version + */ + virtual void baseLayoutSizeChanged()=0; + + /** + * Send the corresponding Custom events to the scrollbar eventhandlers + * according to the visual clicked. + * + */ + virtual bool processPointerEvent(TAlfEvent * aPntrEvent)=0; + + /** + * creates the visualization + * + */ + virtual void createVisualization() = 0; + + /** + * Destroys the visualization + * + */ + virtual void updateVisualization() = 0; + + /** + * updates the visualization + * + */ + virtual void destroyVisualization() = 0; + + /** + * Returns pointer to AlfScrollBarModel + */ + virtual void initializeScrollModel() = 0; + + /** + * Handles Longtap event + */ + virtual AlfEventStatus handleLongTapEvent() = 0; + + /** + *virtual Destructor. + * + */ + virtual ~IAlfScrollBarBaseElementInternal() {} + + }; // end of class IAlfScrollBarBaseElementInternal + + } // end of namespace Alf + +#endif // I_ALFSCROLLBARBASEELEMENTINTERNAL_H +//End Of File