ginebra2/Application.h
author hgs
Fri, 15 Oct 2010 17:30:59 -0400
changeset 16 3c88a81ff781
parent 12 afcd8e6d025b
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
3
hgs
parents: 0
diff changeset
     4
*
hgs
parents: 0
diff changeset
     5
* This program is free software: you can redistribute it and/or modify
hgs
parents: 0
diff changeset
     6
* it under the terms of the GNU Lesser General Public License as published by
hgs
parents: 0
diff changeset
     7
* the Free Software Foundation, version 2.1 of the License.
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
3
hgs
parents: 0
diff changeset
     9
* This program is distributed in the hope that it will be useful,
hgs
parents: 0
diff changeset
    10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents: 0
diff changeset
    11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
hgs
parents: 0
diff changeset
    12
* GNU Lesser General Public License for more details.
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
3
hgs
parents: 0
diff changeset
    14
* You should have received a copy of the GNU Lesser General Public License
hgs
parents: 0
diff changeset
    15
* along with this program.  If not,
hgs
parents: 0
diff changeset
    16
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
*
3
hgs
parents: 0
diff changeset
    18
* Description:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
*/
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#ifndef __GINEBRA_APPLICATION_H__
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#define __GINEBRA_APPLICATION_H__
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <QObject>
16
hgs
parents: 12
diff changeset
    25
#include <QAction>
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
3
hgs
parents: 0
diff changeset
    27
#ifdef ORBIT_UI
hgs
parents: 0
diff changeset
    28
#define UI_FRAMEWORK "orbit_ui"
16
hgs
parents: 12
diff changeset
    29
#elif defined(Q_WS_MAEMO_5)
hgs
parents: 12
diff changeset
    30
#define UI_FRAMEWORK "maemo5_ui"
3
hgs
parents: 0
diff changeset
    31
#else
hgs
parents: 0
diff changeset
    32
#define UI_FRAMEWORK ""
hgs
parents: 0
diff changeset
    33
#endif // ORBIT_UI
hgs
parents: 0
diff changeset
    34
12
hgs
parents: 9
diff changeset
    35
#ifdef QT_MOBILITY_SERVICE_FRAMEWORK
hgs
parents: 9
diff changeset
    36
#define MOBILITY_SERVICE_FRAMEWORK "mobility_service_framework"
hgs
parents: 9
diff changeset
    37
#else
hgs
parents: 9
diff changeset
    38
#define MOBILITY_SERVICE_FRAMEWORK "junk"
hgs
parents: 9
diff changeset
    39
#endif // QT_MOBILITY_SERVICE_FRAMEWORK
hgs
parents: 9
diff changeset
    40
16
hgs
parents: 12
diff changeset
    41
#ifdef QT_GEOLOCATION
hgs
parents: 12
diff changeset
    42
#define GEOLOCATION true
hgs
parents: 12
diff changeset
    43
#else
hgs
parents: 12
diff changeset
    44
#define GEOLOCATION false
hgs
parents: 12
diff changeset
    45
#endif
hgs
parents: 12
diff changeset
    46
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
class QCoreApplication;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
namespace GVA {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
3
hgs
parents: 0
diff changeset
    51
/*! \ingroup JavascriptAPI
hgs
parents: 0
diff changeset
    52
 * \brief This class owns the QCoreApplication object.
hgs
parents: 0
diff changeset
    53
 *
hgs
parents: 0
diff changeset
    54
 * Example javascript code print a string to the debug output:
hgs
parents: 0
diff changeset
    55
 * \code
hgs
parents: 0
diff changeset
    56
 * app.debug("hello");
hgs
parents: 0
diff changeset
    57
 * \endcode
hgs
parents: 0
diff changeset
    58
 */
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
class GinebraApplication : public QObject
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
  Q_OBJECT
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
  public:
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
    GinebraApplication();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
    ~GinebraApplication();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
  public slots:
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
    void quit();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
    void debug(const QString &msg);
3
hgs
parents: 0
diff changeset
    68
    QString ui() const { return UI_FRAMEWORK; }
12
hgs
parents: 9
diff changeset
    69
    QString layoutType() ;
hgs
parents: 9
diff changeset
    70
    QString serviceFramework() const { return MOBILITY_SERVICE_FRAMEWORK; }
16
hgs
parents: 12
diff changeset
    71
    bool geolocation() const { return GEOLOCATION; }
9
hgs
parents: 3
diff changeset
    72
    void sendToBackground();
16
hgs
parents: 12
diff changeset
    73
    
hgs
parents: 12
diff changeset
    74
    /// Create a QAction object
hgs
parents: 12
diff changeset
    75
    QObject *createAction(const QString &text = QString::null, const QString &iconPath = QString::null, bool checkable = false);
hgs
parents: 12
diff changeset
    76
    void addMenuBarAction(QObject *action);
hgs
parents: 12
diff changeset
    77
    void setMenuBarEnabled(bool value);
hgs
parents: 12
diff changeset
    78
    
12
hgs
parents: 9
diff changeset
    79
    /*
hgs
parents: 9
diff changeset
    80
     * You can use this to breakpoint inside your javascript.  Here's how:
hgs
parents: 9
diff changeset
    81
     * 1) put a breakpoint on this function
hgs
parents: 9
diff changeset
    82
     * 2) to your javascript, add: app.breakpoint();
hgs
parents: 9
diff changeset
    83
     * 3) when the breakpoint hits, you will be in the C++ stack at the point of that JS execution
hgs
parents: 9
diff changeset
    84
     * It doesn't really help you step through javascript (unless you know the javascript core well), but helps you debug C++ and javascript interaction
hgs
parents: 9
diff changeset
    85
     */
hgs
parents: 9
diff changeset
    86
    void breakpoint() {}
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
  signals:
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
    void aboutToQuit();
16
hgs
parents: 12
diff changeset
    89
    
hgs
parents: 12
diff changeset
    90
    /// Sent when an action needs to be added to the platform menu bar.
hgs
parents: 12
diff changeset
    91
    void addMenuBarActionRequest(QAction *action);
hgs
parents: 12
diff changeset
    92
    
hgs
parents: 12
diff changeset
    93
    /// Sent when the platform menu bar's menu should be disabled.
hgs
parents: 12
diff changeset
    94
    void setMenuBarEnabledRequest(bool value);
hgs
parents: 12
diff changeset
    95
    
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
  private:
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
    QCoreApplication * m_app;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
};
3
hgs
parents: 0
diff changeset
    99
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
#endif