--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothengine/btui/inc/btuiiconutil.h Tue Aug 31 15:25:10 2010 +0300
@@ -0,0 +1,152 @@
+/*
+ * 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:
+ *
+ */
+
+#ifndef BTUIICONUTIL_H
+#define BTUIICONUTIL_H
+
+#include <qglobal.h>
+#include <bt_sock.h>
+#include <HbIcon>
+//#include "btdevicemodel.h"
+#include "btuidevtypemap.h"
+
+enum BtuiIconCorner {
+ BtuiNoCorners = 0x00, // No badge needed
+ BtuiBottomLeft = 0x01, // Badge for : Paired, Paired & Authorized, Blocked
+ BtuiBottomRight = 0x02, // Badge for : Connected
+ BtuiTopLeft = 0x04, // Badge for : Signal strength
+ BtuiTopRight = 0x08 // Badge for : Battery low
+};
+
+/*!
+ Creates a HbIcon according to the type of the CBTDevice dev,
+ Creates badges in the icon's 4 corners according to the parameters
+ passed to the function
+ bottom left corner: Paired, Paired & Authorized, Blocked
+ bottom right corner: Connected
+ top right corner: Battery low
+ top left corner: signal strength
+*/
+
+inline void setBadging(HbIcon &deviceIcon, int majorProperty, int corners)
+{
+ if (corners & BtuiBottomLeft) {
+ if (majorProperty & BtuiDevProperty::Trusted ) {
+ HbIcon badge("qtg_small_authorised");
+ badge.setIconName("qtg_small_authorised");
+ deviceIcon.addBadge(Qt::AlignLeft|Qt::AlignBottom, badge);
+ }
+ else if (majorProperty & BtuiDevProperty::Bonded) {
+ HbIcon badge("qtg_small_pair");
+ badge.setIconName("qtg_small_pair");
+ deviceIcon.addBadge(Qt::AlignLeft|Qt::AlignBottom, badge);
+ }
+ else if (majorProperty & BtuiDevProperty::Blocked) {
+ HbIcon badge("qtg_small_blocked");
+ badge.setIconName("qtg_small_blocked");
+ deviceIcon.addBadge(Qt::AlignLeft|Qt::AlignBottom, badge);
+ }
+ }
+ if (corners & BtuiBottomRight) {
+ if (majorProperty & BtuiDevProperty::Connected) {
+ HbIcon badge("qtg_small_connection");
+ badge.setIconName("qtg_small_connection");
+ deviceIcon.addBadge(Qt::AlignRight|Qt::AlignBottom, badge);
+ }
+ }
+ if (corners & BtuiTopRight) {
+ //ToDo: when power level added to model
+ }
+ if (corners & BtuiTopLeft) {
+ //ToDo: add signal strength.
+ }
+}
+
+
+/*!
+ * builds device icon based on device type, including badging with connection info, etc.
+ *
+ * \param cod the integer value of the CoD.
+ * \param majorProperty the major property consisting of BtuiDevProperty::DevMajorProperty bits
+ * \param corners specifies which corners of primary icon
+ * should be badged with connectivity, pairing, trust, etc information
+ * \return an HbIcon
+ *
+ */
+inline HbIcon getBadgedDeviceTypeIcon(int cod, int majorProperty = 0, int corners = BtuiNoCorners)
+{
+ int uiMajorDevice;
+ int uiMinorDevice;
+ // device type is mapped according to CoD:
+ BtuiDevProperty::mapDeiveType(uiMajorDevice, uiMinorDevice, cod);
+
+ // Set icon according to the device category
+ QString name;
+ if (uiMajorDevice & BtuiDevProperty::Phone) {
+ name = QString("qtg_large_mobile");
+ }
+ else if (uiMajorDevice & BtuiDevProperty::Computer) {
+ name = QString("qtg_large_computer");
+ }
+ else if (uiMajorDevice & BtuiDevProperty::AVDev) {
+ name = QString("qtg_large_generic_audio");
+ }
+ else if (uiMajorDevice & BtuiDevProperty::Peripheral) {
+ // todo: map to keyboard & mouse from uiMinorDevice
+ name = QString("qtg_large_input_device");
+ }
+ else {
+ name = QString("qtg_large_generic_bluetooth");
+ }
+ HbIcon icon(name);
+ if (corners > BtuiNoCorners) {
+ setBadging(icon, majorProperty, corners);
+ }
+ return icon;
+}
+
+/*
+ * returns device type as a translated string based on
+ * Class of Device (CoD) parameter
+ */
+inline QString getDeviceTypeString( int cod )
+{
+ int uiMajorDevice;
+ int uiMinorDevice;
+ // device type is mapped according to CoD:
+ BtuiDevProperty::mapDeiveType(uiMajorDevice, uiMinorDevice, cod);
+
+ // Set icon according to the device category
+ if (uiMajorDevice & BtuiDevProperty::Phone) {
+ return hbTrId("txt_bt_list_phone");
+ }
+ else if (uiMajorDevice & BtuiDevProperty::Computer) {
+ return hbTrId("txt_bt_list_computer");
+ }
+ else if (uiMajorDevice & BtuiDevProperty::AVDev) {
+ return hbTrId("txt_bt_list_audio_device");
+ }
+ else if (uiMajorDevice & BtuiDevProperty::Peripheral) {
+ // todo: map to keyboard & mouse
+ return hbTrId("txt_bt_list_input_device");
+ }
+ else {
+ return hbTrId("txt_bt_list_other");
+ }
+}
+
+#endif // BTUIMODELUTIL_H