source: smplayer/trunk/src/qtsingleapplication/qtsingleapplication.h@ 165

Last change on this file since 165 was 165, checked in by Silvan Scherrer, 11 years ago

SMPlayer: update trunk to latest 0.8.7

File size: 3.9 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4** Contact: http://www.qt-project.org/legal
5**
6** This file is part of the Qt Solutions component.
7**
8** $QT_BEGIN_LICENSE:BSD$
9** You may use this file under the terms of the BSD license as follows:
10**
11** "Redistribution and use in source and binary forms, with or without
12** modification, are permitted provided that the following conditions are
13** met:
14** * Redistributions of source code must retain the above copyright
15** notice, this list of conditions and the following disclaimer.
16** * Redistributions in binary form must reproduce the above copyright
17** notice, this list of conditions and the following disclaimer in
18** the documentation and/or other materials provided with the
19** distribution.
20** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
21** of its contributors may be used to endorse or promote products derived
22** from this software without specific prior written permission.
23**
24**
25** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36**
37** $QT_END_LICENSE$
38**
39****************************************************************************/
40
41#ifndef QTSINGLEAPPLICATION_H
42#define QTSINGLEAPPLICATION_H
43
44#include <QApplication>
45
46class QtLocalPeer;
47
48#if defined(Q_OS_WIN)
49# if !defined(QT_QTSINGLEAPPLICATION_EXPORT) && !defined(QT_QTSINGLEAPPLICATION_IMPORT)
50# define QT_QTSINGLEAPPLICATION_EXPORT
51# elif defined(QT_QTSINGLEAPPLICATION_IMPORT)
52# if defined(QT_QTSINGLEAPPLICATION_EXPORT)
53# undef QT_QTSINGLEAPPLICATION_EXPORT
54# endif
55# define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllimport)
56# elif defined(QT_QTSINGLEAPPLICATION_EXPORT)
57# undef QT_QTSINGLEAPPLICATION_EXPORT
58# define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllexport)
59# endif
60#else
61# define QT_QTSINGLEAPPLICATION_EXPORT
62#endif
63
64class QT_QTSINGLEAPPLICATION_EXPORT QtSingleApplication : public QApplication
65{
66 Q_OBJECT
67
68public:
69 QtSingleApplication(int &argc, char **argv, bool GUIenabled = true);
70 QtSingleApplication(const QString &id, int &argc, char **argv);
71#if QT_VERSION < 0x050000
72 QtSingleApplication(int &argc, char **argv, Type type);
73# if defined(Q_WS_X11)
74 QtSingleApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0);
75 QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0);
76 QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0);
77# endif // Q_WS_X11
78#endif // QT_VERSION < 0x050000
79
80 bool isRunning();
81 QString id() const;
82
83 void setActivationWindow(QWidget* aw, bool activateOnMessage = true);
84 QWidget* activationWindow() const;
85
86 // Obsolete:
87 void initialize(bool dummy = true)
88 { isRunning(); Q_UNUSED(dummy) }
89
90public Q_SLOTS:
91 bool sendMessage(const QString &message, int timeout = 5000);
92 void activateWindow();
93
94
95Q_SIGNALS:
96 void messageReceived(const QString &message);
97
98
99private:
100 void sysInit(const QString &appId = QString());
101 QtLocalPeer *peer;
102 QWidget *actWin;
103};
104
105#endif // QTSINGLEAPPLICATION_H
Note: See TracBrowser for help on using the repository browser.