Qt 4.8
qwsdisplay_qws.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the QtGui module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
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 
53 
55 
56 QT_MODULE(Gui)
57 
58 class QWSEvent;
59 class QWSMouseEvent;
61 class QVariant;
62 class QLock;
63 
65 {
66 
67 public:
68 
69  int winid;
70  unsigned int clientid;
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 
79 class QWSDisplay;
81 
83 {
84 public:
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 
162 private:
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;
178  static QLock *lock;
179 };
180 
182 
184 
185 #endif // QWSDISPLAY_QWS_H
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:92
The QWSDisplay class provides a display for QWS; it is an internal class.
The QApplication class manages the GUI application&#39;s control flow and main settings.
Definition: qapplication.h:99
int type
Definition: qmetatype.cpp:239
unsigned char c[8]
Definition: qnumeric_p.h:62
#define QT_END_NAMESPACE
This macro expands to.
Definition: qglobal.h:90
#define QT_MODULE(x)
Definition: qglobal.h:2783
static QLock * lock
#define QT_BEGIN_HEADER
Definition: qglobal.h:136
Q_GUI_EXPORT QWSDisplay * qt_fbdpy
#define Q_GUI_EXPORT
Definition: qglobal.h:1450
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
static Expression::Ptr create(Expression *const expr, const YYLTYPE &sourceLocator, const ParserContext *const parseInfo)
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
void Q_GUI_EXPORT qt_app_reinit(const QString &newAppName)
The QString class provides a Unicode character string.
Definition: qstring.h:83
Q_CORE_EXPORT QTextStream & fixed(QTextStream &s)
The QWSEvent class encapsulates an event in Qt for Embedded Linux.
Definition: qwsevent_qws.h:59
unsigned char uchar
Definition: qglobal.h:994
The QBitmap class provides monochrome (1-bit depth) pixmaps.
Definition: qbitmap.h:55
The QWSEmbedWidget class enables embedded top-level widgets in Qt for Embedded Linux.
The QTime class provides clock time functions.
Definition: qdatetime.h:148
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition: qglobal.h:89
The QLock class is a wrapper for a system shared semaphore.
Definition: qlock_p.h:62
static const char * data(const QByteArray &arr)
The QRegion class specifies a clip region for a painter.
Definition: qregion.h:68
char * getPropertyData
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:53
const char * property
Definition: qwizard.cpp:138
QFuture< void > filter(Sequence &sequence, FilterFunction filterFunction)
The QCopChannel class provides communication capabilities between clients in Qt for Embedded Linux...
quint16 index
static QString appName
static QWSDisplay * instance()
unsigned int clientid
#define QT_END_HEADER
Definition: qglobal.h:137
The QList class is a template class that provides lists.
Definition: qdatastream.h:62