btservices_plat/bt_remote_device_setting_api/inc/btabstractdevsetting.h
branchRCL_3
changeset 22 613943a21004
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/btservices_plat/bt_remote_device_setting_api/inc/btabstractdevsetting.h	Tue Aug 31 15:25:10 2010 +0300
@@ -0,0 +1,138 @@
+/*
+* Copyright (c) 2010 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 plugin interface of Bluetooth device setting ui 
+*
+*/
+
+#ifndef BTABSTRACTDEVSETTING_H
+#define BTABSTRACTDEVSETTING_H
+
+#include <HbDataForm>
+#include <btdevsettingglobal.h>
+
+/*!
+    \class BtAbstractDevSetting
+    \brief The class BtAbstractDevSetting is the base class 
+    for offering a UI to manage certain settings of 
+    a remote Bluetooth device, e.g., accessory and keyboard settings. 
+ */
+class BTDEVSETTINGINTERFACE_EXPORT BtAbstractDevSetting : public QObject
+{
+    Q_OBJECT
+    
+public:
+    
+    /*!
+     Constructs a device setting plugin entry.
+     
+     \param address the BD_ADDR of the remote device which this setting 
+     plugin is provided for. Its format is XXXXXXXXXXXX, where X is a 
+     hexadecimal digit. Case is insensitive.
+     \parent the parent of this object.
+     */
+    explicit BtAbstractDevSetting(const QString &address, QObject *parent = 0 );
+    
+    /*!
+     Destructor of BtAbstractDeviceSetting.
+     */
+    virtual ~BtAbstractDevSetting();
+    
+    /*!
+     Gets the BD_ADDR of the remote device which this setting 
+     plugin is provided for.
+     
+     \return the device address of the remote device in hex string
+     */
+    const QString &getRemote() const;
+    
+    /*!
+     Tells if this setting plugin can provide a setting UI
+     for the target device. If the answer is true, this plugin may be
+     requested to create a setting widget by function 
+     \code createSettingWidget() \endcode.
+     
+     \return true if a setting is currently available. false, otherwise.
+     
+     The default implementation returns false.
+     */
+    virtual bool isSettingAvailable();
+    
+    /*!
+     Gets a \code HbDataForm \endcode instance which consists of the
+     setting UI from this specific plugin. The loader of this plugin will
+     add this dataform into its setting view if its setting is available at
+     the time.
+     
+     The ownership of this widget is transferred to the plugin loader.
+     
+     The default implementation returns 0. 
+
+     \return an \code HbDataForm \endcode instance.
+     */
+    virtual HbDataForm *getSettingWidget();
+    
+    /*!
+     Informs that device setting is going to foreground. This 
+     implies that the \code HbWidget \endcode from function 
+     \code createSettingWidget \endcode will be shown if the setting
+     from this plugin is available.
+     
+     The default implementation does nothing.
+     */
+    virtual void aboutToForeground();
+    
+    /*!
+     Informs that device setting is going to background.
+     
+     The default implementation does nothing.
+     */
+    virtual void aboutToBackground();
+
+    /*!
+     Informs that device setting is going to close.
+     
+     The default implementation does nothing.
+     */
+    virtual void aboutToClose();
+    
+signals:
+    
+    /*!
+    The signal the plugin should emit for informing that the
+    availability of this setting is changed.
+    
+    If the setting becomes available, the owner of this plugin may
+    request the plugin to create a setting widget.
+    
+    If the setting becomes unavailable, the owner of this plugin may close and 
+    destroy the setting widget.
+    
+    \param setting the pointer of the setting whose status has changed.
+    
+    \param available true if the setting is available; false otherwise.
+    
+    \sa isSettingAvailable().
+     */
+    void settingAvailabilityChanged(BtAbstractDevSetting *setting, bool available);
+    
+private:
+    
+    /*!
+     The remote device address in format XXXXXXXXXXXX where X is a 
+     hexadecimal digit.
+     */
+    QString mRemote;
+};
+
+#endif /* BTABSTRACTDEVSETTING_H */