diff -r 0ba996a9b75d -r 613943a21004 btservices_plat/bt_remote_device_setting_api/inc/btabstractdevsetting.h --- /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 +#include + +/*! + \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 */