mmuifw_plat/alf_scrollbarwidget_api/inc/alf/ialfscrollbarwidget.h
branchRCL_3
changeset 26 0e9bb658ef58
parent 0 e83bab7cf002
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmuifw_plat/alf_scrollbarwidget_api/inc/alf/ialfscrollbarwidget.h	Wed Sep 01 12:23:18 2010 +0100
@@ -0,0 +1,132 @@
+/*
+* 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:  Widget interface with utilities for scrollbar widget.
+*
+*/
+
+#ifndef I_ALF_SCROLLBARWIDGET_H
+#define I_ALF_SCROLLBARWIDGET_H
+
+//WidgetModel includes
+#include <alf/ialfwidget.h>
+#include <alf/alfevent.h>
+#include <alf/alfwidgetevents.h>
+#include <alf/ialfwidgetfactory.h>
+
+//osn includes
+#include <osn/osndefines.h>
+#include <osn/ustring.h>
+
+namespace Alf
+    {
+namespace alfscrollbarwidget
+    {
+    /**
+     * @namespace alfscrollbarwidget
+     * 
+     * ident specifies the unique identifier for the grid widget.
+     */
+    static const IfId ident =
+        {
+        0, "alfscrollbarwidget"
+        };
+    static const Utf8* const KBaseElementName = "BaseElement";
+    }
+
+/**
+ * Enumeration of selectionchanged events generated by the grid widget.
+ */
+enum
+    {
+    EEventScrollBarClicked = ELastCommonWidgetEvent+1111,
+    EEventScrollBarTouchDown,
+    EEventScrollBarDrag
+    };
+    
+    
+/**
+ * Interface for the scrollbar widget.
+ *
+ * Default visualization of scrollbar contains following components.
+ * <ul>
+ * <li>Thumb (The size of the Thumb shows the amount of scrollable content)</li>
+ * <li>Track (Place holder for Thumb)</li>
+ * </ul>
+ * 
+ * A scrollbar widget is used along with a scrollable widget,  
+ * <ul> 
+ * <li>to show the amount of scrollable content inside scrollable widget by 
+ * means of thumb size</li>
+ * <li>to generate scroll events(MoveUp and Movedown, PageUp PageDown and drag)
+ * </li>
+ * <li>to show the view start position in the scrollbale content</li>
+ * </ul>
+ *
+ * The communication between scrollbar and scrollable widget happens through 
+ * events. Scrollbar handles only pointer events which are converted to higher
+ * level events like <b>EEventScrollUp, EEventScrollDown, EEventScrollLeft,
+ * EEventScrollRight, EEventScrollPageUp, EEventScrollPageDown, 
+ * EEventScrollPageLeft and EEventScrollPageRight</b>
+ * and sent to scrollable widget.Scrollable widget can also generate similar 
+ * higher level events in response to key and pointer events.In which case it 
+ * is scrollable widget's resposibility to send these events to scrollbar.
+ *
+ */
+class IAlfScrollBarWidget: public IAlfWidget
+    {
+public:
+    /**
+     * Get the type of widget.
+     * 
+     * @return The type of widget
+     */
+    static  const IfId& type()
+        {
+        return alfscrollbarwidget::ident;
+        }
+
+    /**
+     * Gets the Base Element Name.
+     *
+     * @return The base element's name
+     */
+    static inline const char* baseElementName()
+        {
+        return alfscrollbarwidget::KBaseElementName;
+        }
+        
+    /**
+     * Destructor.
+     */	
+    virtual ~IAlfScrollBarWidget() {}
+    /**
+     * Sets whether or not tactile feedback is enabled.
+     *
+     * @param aFlag Whether or not tactile is enabled.
+     */
+    virtual void enableTactile(bool aFlag) = 0; 
+    
+    /**
+     * Returns the state of tactile feedback whether it is enabled/disabled.
+     *
+     * @param aEnabled Whether or not tactile is enabled.
+     */
+    virtual bool IsTactileEnabled() = 0;
+
+    };
+
+    } // namespace Alf
+
+#endif // IALF_SCROLLBARWIDGET_H
+//End Of File