bluetoothengine/btui/inc/btuiiconutil.h
author hgs
Fri, 23 Jul 2010 15:57:13 +0300
changeset 47 9e2a905b887f
parent 42 b72428996822
permissions -rw-r--r--
201029_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0""
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description:  
hgs
parents:
diff changeset
    15
 *   
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef BTUIICONUTIL_H
hgs
parents:
diff changeset
    19
#define BTUIICONUTIL_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include <qglobal.h>
hgs
parents:
diff changeset
    22
#include <bt_sock.h>
hgs
parents:
diff changeset
    23
#include <HbIcon>
47
9e2a905b887f 201029_02
hgs
parents: 42
diff changeset
    24
//#include "btdevicemodel.h"
42
hgs
parents:
diff changeset
    25
#include "btuidevtypemap.h"
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
enum BtuiIconCorner {
hgs
parents:
diff changeset
    28
    BtuiNoCorners   = 0x00,   // No badge needed
hgs
parents:
diff changeset
    29
    BtuiBottomLeft  = 0x01,   // Badge for : Paired, Paired & Authorized, Blocked
hgs
parents:
diff changeset
    30
    BtuiBottomRight = 0x02,   // Badge for : Connected
hgs
parents:
diff changeset
    31
    BtuiTopLeft     = 0x04,   // Badge for : Signal strength
hgs
parents:
diff changeset
    32
    BtuiTopRight    = 0x08    // Badge for : Battery low
hgs
parents:
diff changeset
    33
};
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
/*!
hgs
parents:
diff changeset
    36
  Creates a HbIcon according to the type of the CBTDevice dev,
hgs
parents:
diff changeset
    37
  Creates badges in the icon's 4 corners according to the parameters 
hgs
parents:
diff changeset
    38
  passed to the function
hgs
parents:
diff changeset
    39
  bottom left corner: Paired, Paired & Authorized, Blocked
hgs
parents:
diff changeset
    40
  bottom right corner: Connected
hgs
parents:
diff changeset
    41
  top right corner: Battery low
hgs
parents:
diff changeset
    42
  top left corner: signal strength
hgs
parents:
diff changeset
    43
*/
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
inline void setBadging(HbIcon &deviceIcon, int majorProperty, int corners)
hgs
parents:
diff changeset
    46
{
hgs
parents:
diff changeset
    47
    if (corners & BtuiBottomLeft) {
hgs
parents:
diff changeset
    48
         if (majorProperty & BtuiDevProperty::Trusted ) {
hgs
parents:
diff changeset
    49
             HbIcon badge("qtg_small_authorised");
hgs
parents:
diff changeset
    50
             badge.setIconName("qtg_small_authorised");
hgs
parents:
diff changeset
    51
             deviceIcon.addBadge(Qt::AlignLeft|Qt::AlignBottom, badge);
hgs
parents:
diff changeset
    52
         }
hgs
parents:
diff changeset
    53
         else if (majorProperty & BtuiDevProperty::Bonded) {
hgs
parents:
diff changeset
    54
             HbIcon badge("qtg_small_pair");
hgs
parents:
diff changeset
    55
             badge.setIconName("qtg_small_pair");
hgs
parents:
diff changeset
    56
             deviceIcon.addBadge(Qt::AlignLeft|Qt::AlignBottom, badge);
hgs
parents:
diff changeset
    57
         }
hgs
parents:
diff changeset
    58
         else if (majorProperty & BtuiDevProperty::Blocked) {
hgs
parents:
diff changeset
    59
             HbIcon badge("qtg_small_blocked");
hgs
parents:
diff changeset
    60
             badge.setIconName("qtg_small_blocked");
hgs
parents:
diff changeset
    61
             deviceIcon.addBadge(Qt::AlignLeft|Qt::AlignBottom, badge);
hgs
parents:
diff changeset
    62
         }
hgs
parents:
diff changeset
    63
     }
hgs
parents:
diff changeset
    64
     if (corners & BtuiBottomRight) {
hgs
parents:
diff changeset
    65
         if (majorProperty & BtuiDevProperty::Connected) {
hgs
parents:
diff changeset
    66
             HbIcon badge("qtg_small_connection");
hgs
parents:
diff changeset
    67
             badge.setIconName("qtg_small_connection");
hgs
parents:
diff changeset
    68
             deviceIcon.addBadge(Qt::AlignRight|Qt::AlignBottom, badge);
hgs
parents:
diff changeset
    69
         }
hgs
parents:
diff changeset
    70
     }
hgs
parents:
diff changeset
    71
     if (corners & BtuiTopRight) {
hgs
parents:
diff changeset
    72
     //ToDo: when power level added to model
hgs
parents:
diff changeset
    73
     }
hgs
parents:
diff changeset
    74
     if (corners & BtuiTopLeft) {
hgs
parents:
diff changeset
    75
     //ToDo: add signal strength.    
hgs
parents:
diff changeset
    76
     }
hgs
parents:
diff changeset
    77
}
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
/*!
hgs
parents:
diff changeset
    81
 * builds device icon based on device type, including badging with connection info, etc.
hgs
parents:
diff changeset
    82
 * 
hgs
parents:
diff changeset
    83
 * \param cod the integer value of the CoD.
hgs
parents:
diff changeset
    84
 * \param majorProperty the major property consisting of BtuiDevProperty::DevMajorProperty bits
hgs
parents:
diff changeset
    85
 * \param corners specifies which corners of primary icon 
hgs
parents:
diff changeset
    86
 *          should be badged with connectivity, pairing, trust, etc information
hgs
parents:
diff changeset
    87
 * \return an HbIcon
hgs
parents:
diff changeset
    88
 *       
hgs
parents:
diff changeset
    89
 */
hgs
parents:
diff changeset
    90
inline HbIcon getBadgedDeviceTypeIcon(int cod, int majorProperty = 0, int corners = BtuiNoCorners)
hgs
parents:
diff changeset
    91
{   
hgs
parents:
diff changeset
    92
    int uiMajorDevice;
hgs
parents:
diff changeset
    93
    int uiMinorDevice;
hgs
parents:
diff changeset
    94
    // device type is mapped according to CoD:
hgs
parents:
diff changeset
    95
    BtuiDevProperty::mapDeiveType(uiMajorDevice, uiMinorDevice, cod);
hgs
parents:
diff changeset
    96
    
hgs
parents:
diff changeset
    97
    // Set icon according to the device category
hgs
parents:
diff changeset
    98
    QString name;
hgs
parents:
diff changeset
    99
    if (uiMajorDevice & BtuiDevProperty::Phone) {
hgs
parents:
diff changeset
   100
        name = QString("qtg_large_mobile");
hgs
parents:
diff changeset
   101
    }
hgs
parents:
diff changeset
   102
    else if (uiMajorDevice & BtuiDevProperty::Computer) {
hgs
parents:
diff changeset
   103
        name = QString("qtg_large_computer");
hgs
parents:
diff changeset
   104
    }
hgs
parents:
diff changeset
   105
    else if (uiMajorDevice & BtuiDevProperty::AVDev) {
hgs
parents:
diff changeset
   106
        name = QString("qtg_large_generic_audio");
hgs
parents:
diff changeset
   107
    }
hgs
parents:
diff changeset
   108
    else if (uiMajorDevice & BtuiDevProperty::Peripheral) {
hgs
parents:
diff changeset
   109
        // todo: map to keyboard & mouse from uiMinorDevice
hgs
parents:
diff changeset
   110
        name = QString("qtg_large_input_device");
hgs
parents:
diff changeset
   111
    }
hgs
parents:
diff changeset
   112
    else {
hgs
parents:
diff changeset
   113
        name = QString("qtg_large_generic_bluetooth");
hgs
parents:
diff changeset
   114
    }
hgs
parents:
diff changeset
   115
    HbIcon icon(name);
hgs
parents:
diff changeset
   116
    if (corners > BtuiNoCorners) {
hgs
parents:
diff changeset
   117
        setBadging(icon, majorProperty, corners);
hgs
parents:
diff changeset
   118
    }
hgs
parents:
diff changeset
   119
    return icon;
hgs
parents:
diff changeset
   120
}
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
/*
hgs
parents:
diff changeset
   123
 * returns device type as a translated string based on  
hgs
parents:
diff changeset
   124
 * Class of Device (CoD) parameter
hgs
parents:
diff changeset
   125
 */
hgs
parents:
diff changeset
   126
inline QString getDeviceTypeString( int cod )
hgs
parents:
diff changeset
   127
{   
hgs
parents:
diff changeset
   128
    int uiMajorDevice;
hgs
parents:
diff changeset
   129
    int uiMinorDevice;
hgs
parents:
diff changeset
   130
    // device type is mapped according to CoD:
hgs
parents:
diff changeset
   131
    BtuiDevProperty::mapDeiveType(uiMajorDevice, uiMinorDevice, cod);
hgs
parents:
diff changeset
   132
    
hgs
parents:
diff changeset
   133
    // Set icon according to the device category
hgs
parents:
diff changeset
   134
    if (uiMajorDevice & BtuiDevProperty::Phone) {
hgs
parents:
diff changeset
   135
        return hbTrId("txt_bt_list_phone");
hgs
parents:
diff changeset
   136
    }
hgs
parents:
diff changeset
   137
    else if (uiMajorDevice & BtuiDevProperty::Computer) {
hgs
parents:
diff changeset
   138
        return hbTrId("txt_bt_list_computer");
hgs
parents:
diff changeset
   139
    }
hgs
parents:
diff changeset
   140
    else if (uiMajorDevice & BtuiDevProperty::AVDev) {  
hgs
parents:
diff changeset
   141
        return hbTrId("txt_bt_list_audio_device");
hgs
parents:
diff changeset
   142
    }
hgs
parents:
diff changeset
   143
    else if (uiMajorDevice & BtuiDevProperty::Peripheral) {
hgs
parents:
diff changeset
   144
        // todo: map to keyboard & mouse
hgs
parents:
diff changeset
   145
        return hbTrId("txt_bt_list_input_device");
hgs
parents:
diff changeset
   146
    }
hgs
parents:
diff changeset
   147
    else {
hgs
parents:
diff changeset
   148
        return hbTrId("txt_bt_list_other");
hgs
parents:
diff changeset
   149
    }
hgs
parents:
diff changeset
   150
}
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
#endif // BTUIMODELUTIL_H