mulwidgets/alfscrollbarwidget/inc/ialfscrollbarbaseelementinternal.h
branchRCL_3
changeset 20 0e9bb658ef58
parent 0 e83bab7cf002
--- /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 <alf/ialfinterfacebase.h>
+
+//Toolkit include
+#include <alf/alfevent.h>
+
+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<IAlfScrollBarBaseElementInternal*> ( 
+     * 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