source: trunk/src/gui/embedded/qwsdisplay_qws.h@ 707

Last change on this file since 707 was 651, checked in by Dmitry A. Kuminov, 16 years ago

trunk: Merged in qt 4.6.2 sources.

  • Property svn:eol-style set to native
File size: 6.0 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the QtGui module of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42#ifndef QWSDISPLAY_QWS_H
43#define QWSDISPLAY_QWS_H
44
45#include <QtCore/qobject.h>
46#include <QtCore/qbytearray.h>
47#include <QtGui/qregion.h>
48#include <QtGui/qimage.h>
49#include <QtGui/qwindowdefs.h>
50#include <QtCore/qlist.h>
51
52QT_BEGIN_HEADER
53
54QT_BEGIN_NAMESPACE
55
56QT_MODULE(Gui)
57
58class QWSEvent;
59class QWSMouseEvent;
60class QWSQCopMessageEvent;
61class QVariant;
62class QLock;
63
64class QWSWindowInfo
65{
66
67public:
68
69 int winid;
70 unsigned int clientid;
71 QString name;
72
73};
74
75#define QT_QWS_PROPERTY_CONVERTSELECTION 999
76#define QT_QWS_PROPERTY_WINDOWNAME 998
77#define QT_QWS_PROPERTY_MARKEDTEXT 997
78
79class QWSDisplay;
80extern Q_GUI_EXPORT QWSDisplay *qt_fbdpy;
81
82class Q_GUI_EXPORT QWSDisplay
83{
84public:
85 QWSDisplay();
86 ~QWSDisplay();
87
88 static QWSDisplay* instance() { return qt_fbdpy; }
89
90 bool eventPending() const;
91 QWSEvent *getEvent();
92// QWSRegionManager *regionManager() const;
93
94 uchar* frameBuffer() const;
95 int width() const;
96 int height() const;
97 int depth() const;
98 int pixmapDepth() const;
99 bool supportsDepth(int) const;
100
101 uchar *sharedRam() const;
102 int sharedRamSize() const;
103
104#ifndef QT_NO_QWS_PROPERTIES
105 void addProperty(int winId, int property);
106 void setProperty(int winId, int property, int mode, const QByteArray &data);
107 void setProperty(int winId, int property, int mode, const char * data);
108 void removeProperty(int winId, int property);
109 bool getProperty(int winId, int property, char *&data, int &len);
110#endif // QT_NO_QWS_PROPERTIES
111
112 QList<QWSWindowInfo> windowList();
113 int windowAt(const QPoint &);
114
115 void setIdentity(const QString &appName);
116 void nameRegion(int winId, const QString& n, const QString &c);
117 void requestRegion(int winId, const QString &surfacekey,
118 const QByteArray &surfaceData,
119 const QRegion &region);
120 void repaintRegion(int winId, int windowFlags, bool opaque, QRegion);
121 void moveRegion(int winId, int dx, int dy);
122 void destroyRegion(int winId);
123 void requestFocus(int winId, bool get);
124 void setAltitude(int winId, int altitude, bool fixed = false);
125 void setOpacity(int winId, int opacity);
126 int takeId();
127 void setSelectionOwner(int winId, const QTime &time);
128 void convertSelection(int winId, int selectionProperty, const QString &mimeTypes);
129 void defineCursor(int id, const QBitmap &curs, const QBitmap &mask,
130 int hotX, int hotY);
131 void destroyCursor(int id);
132 void selectCursor(QWidget *w, unsigned int id);
133 void setCursorPosition(int x, int y);
134 void grabMouse(QWidget *w, bool grab);
135 void grabKeyboard(QWidget *w, bool grab);
136 void playSoundFile(const QString&);
137 void registerChannel(const QString &channel);
138 void sendMessage(const QString &channel, const QString &msg,
139 const QByteArray &data);
140 void flushCommands();
141#ifndef QT_NO_QWS_INPUTMETHODS
142 void sendIMUpdate(int type, int winId, int widgetid);
143 void resetIM();
144 void sendIMResponse(int winId, int property, const QVariant &result);
145 void sendIMMouseEvent(int index, bool isPress);
146#endif
147 QWSQCopMessageEvent* waitForQCopResponse();
148 void sendFontCommand(int type, const QByteArray &fontName);
149
150 void setWindowCaption(QWidget *w, const QString &);
151
152 // Lock display for access only by this process
153 static bool initLock(const QString &filename, bool create = false);
154 static bool grabbed();
155 static void grab();
156 static void grab(bool write);
157 static void ungrab();
158
159 static void setTransformation(int transformation, int screenNo = -1);
160 static void setRawMouseEventFilter(void (*filter)(QWSMouseEvent *));
161
162private:
163 friend int qt_fork_qapplication();
164 friend void qt_app_reinit( const QString& newAppName );
165 friend class QApplication;
166 friend class QCopChannel;
167 friend class QWSEmbedWidget;
168 friend class QWSEmbedWidgetPrivate;
169 class Data;
170 friend class Data;
171 Data *d;
172
173 friend class QWSMemorySurface;
174 friend class QWSOnScreenSurface;
175 friend class QWSDirectPainterSurface;
176 int getPropertyLen;
177 char *getPropertyData;
178 static QLock *lock;
179};
180
181QT_END_NAMESPACE
182
183QT_END_HEADER
184
185#endif // QWSDISPLAY_QWS_H
Note: See TracBrowser for help on using the repository browser.