javauis/nokiauiapi_qt/inc/CSoftNotification.h
author hgs
Fri, 17 Sep 2010 16:44:34 +0300
changeset 72 1f0034e370aa
child 78 71ad690e91f5
permissions -rw-r--r--
v2.2.15_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
72
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     1
/*******************************************************************************
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009, 2010 Nokia Corporation and/or its subsidiary(-ies).
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     3
 * All rights reserved. This program and the accompanying materials
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     4
 * are made available under the terms of the Eclipse Public License v1.0
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     5
 * which accompanies this distribution, and is available at
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     6
 * http://www.eclipse.org/legal/epl-v10.html
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     7
 *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     8
 * Contributors:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     9
 *     Nokia Corporation - initial implementation
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    10
 *******************************************************************************/
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    11
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    12
#ifndef CSOFTNOTIFICATION_H
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    13
#define CSOFTNOTIFICATION_H
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    14
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    15
#include <e32base.h>
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    16
#include <jni.h>
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    17
#include <HbIndicatorsymbian.h>
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    18
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    19
NONSHARABLE_CLASS(CSoftNotification) : public CBase,
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    20
        MHbIndicatorSymbianObserver
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    21
    {
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    22
public:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    23
  
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    24
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    25
     * Static constructor
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    26
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    27
    static CSoftNotification* NewL(TInt aAppId, TInt aNotificationId);
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    28
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    29
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    30
     * Destructor.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    31
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    32
    virtual ~CSoftNotification();
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    33
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    34
public:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    35
    // From MHbIndicatorSymbianObserver
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    36
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    37
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    38
     * Dynamic soft notification was activated by user.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    39
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    40
    void IndicatorUserActivated(const TDesC &aType,
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    41
            CHbSymbianVariantMap &aData);
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    42
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    43
public:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    44
    // New functions
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    45
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    46
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    47
     * Add a custom soft notification. 
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    48
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    49
    bool ShowSoftNotificationL();
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    50
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    51
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    52
     * Cancels custom soft notification.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    53
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    54
    void RemoveSoftNotificationL();
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    55
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    56
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    57
     * Set a text for a soft notification.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    58
     *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    59
     * @param aSingularText singular text for soft notification
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    60
     * @param aPluralText plural text for soft notification
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    61
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    62
    void SetTextL(const TDesC& aPrimaryText, const TDesC& aSecondaryText);
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    63
    
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    64
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    65
     * Set an image path for a soft notification.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    66
     *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    67
     * @param aImagePath image path for soft notification
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    68
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    69
    void SetImagePathL(const TDesC& aImagePath);
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    70
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    71
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    72
     * Returns the notification id.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    73
     *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    74
     * @return notification id
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    75
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    76
    TInt Id();
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    77
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    78
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    79
     * Set Java peer observer instance for event callbacks.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    80
     * Note: the observer has to be a global weak reference.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    81
     *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    82
     * @param aPeer Java peer observer
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    83
     * @param aMethodId Callback method identifier.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    84
     * @param aJniEnv JNI environment
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    85
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    86
    void SetPeerObserver(jobject aPeer, jmethodID aMethodId, JNIEnv* aJniEnv);
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    87
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    88
private:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    89
    // Constructors
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    90
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    91
     * C++ constructor.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    92
     *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    93
     * @param aAppId View activation application id.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    94
     * @param aNotificationId Notification id.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    95
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    96
    CSoftNotification(TInt aAppId, TInt aNotificationId);
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    97
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    98
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    99
     * 2nd phase constructor.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   100
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   101
    void ConstructL();
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   102
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   103
private:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   104
    // New methods
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   105
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   106
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   107
     * Set assigned member data to custom notification parameters
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   108
     *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   109
     * @param aParam custom soft notification params to fill
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   110
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   111
    CHbSymbianVariant* NotificationParamsL();
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   112
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   113
private:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   114
    // Data
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   115
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   116
    CHbIndicatorSymbian* iIndicator;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   117
    TUid iMidletId;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   118
    TInt iNotificationId;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   119
    HBufC* iPrimaryText;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   120
    HBufC* iSecondaryText;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   121
    HBufC* iImagePath;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   122
    jobject iPeer;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   123
    jmethodID iMethodId;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   124
    JNIEnv* iJniEnv;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   125
    };
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   126
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   127
#endif // CSOFTNOTIFICATION_H
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   128