qplatformcursor.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/gui/kernel/qplatformcursor.cpp
Source codeSwitch to Preprocessed file
LineSourceCount
1/****************************************************************************-
2**-
3** Copyright (C) 2016 The Qt Company Ltd.-
4** Contact: https://www.qt.io/licensing/-
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 The Qt Company. For licensing terms-
14** and conditions see https://www.qt.io/terms-conditions. For further-
15** information use the contact form at https://www.qt.io/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 3 as published by the Free Software-
20** Foundation and appearing in the file LICENSE.LGPL3 included in the-
21** packaging of this file. Please review the following information to-
22** ensure the GNU Lesser General Public License version 3 requirements-
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.-
24**-
25** GNU General Public License Usage-
26** Alternatively, this file may be used under the terms of the GNU-
27** General Public License version 2.0 or (at your option) the GNU General-
28** Public license version 3 or any later version approved by the KDE Free-
29** Qt Foundation. The licenses are as published by the Free Software-
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3-
31** included in the packaging of this file. Please review the following-
32** information to ensure the GNU General Public License requirements will-
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and-
34** https://www.gnu.org/licenses/gpl-3.0.html.-
35**-
36** $QT_END_LICENSE$-
37**-
38****************************************************************************/-
39#include "qplatformcursor.h"-
40-
41#include <QPainter>-
42#include <QBitmap>-
43#include <QGuiApplication>-
44#include <QScreen>-
45#include <qpa/qplatformscreen.h>-
46#include <private/qguiapplication_p.h>-
47-
48#include <QDebug>-
49-
50QT_BEGIN_NAMESPACE-
51-
52QList<QPlatformCursor *> QPlatformCursorPrivate::getInstances()-
53{-
54 QList<QPlatformCursor *> result;-
55 for (const QScreen *screen : qAsConst(QGuiApplicationPrivate::screen_list)) {-
56 if (QPlatformCursor *cursor = screen->handle()->cursor())
QPlatformCurso...le()->cursor()Description
TRUEnever evaluated
FALSEnever evaluated
0
57 result.push_back(cursor);
never executed: result.push_back(cursor);
0
58 }
never executed: end of block
0
59 return result;
never executed: return result;
0
60}-
61-
62/*!-
63 \class QPlatformCursor-
64 \since 5.0-
65 \internal-
66 \preliminary-
67 \ingroup qpa-
68-
69 \brief The QPlatformCursor class provides information about-
70 pointer device events (movement, buttons), and requests to change-
71 the currently displayed cursor.-
72-
73 Note that QPlatformCursor does not include any graphics for-
74 display. An application that sets a QCursor may provide its own-
75 graphics.-
76-
77 \sa QPlatformCursorImage-
78*/-
79-
80/*!-
81 \fn virtual void QPlatformCursor::pointerEvent(const QMouseEvent & event)-
82-
83 This method is called by Qt whenever a QMouseEvent is generated by the-
84 underlying pointer input. \a event is a reference to the QMouseEvent in-
85 question. A default do-nothing implementation is provided.-
86*/-
87-
88/*!-
89 \fn virtual void QPlatformCursor::changeCursor(QCursor * windowCursor, QWindow * window)-
90-
91 \brief This method is called by Qt whenever the cursor graphic should be changed.-
92-
93 Implementation of this method is mandatory for a subclass of QPlatformCursor.-
94-
95 \a windowCursor is a pointer to the QCursor that should be displayed.-
96-
97 To unset the cursor of \a window, 0 is passed. This means \a window does not have-
98 a cursor set and the cursor of a the first parent window which has a cursor explicitly-
99 set or the system default cursor should take effect.-
100-
101 \a window is a pointer to the window currently displayed at QCursor::pos(). Note-
102 that this may be 0 if the current position is not occupied by a displayed widget.-
103-
104 \sa QCursor::pos()-
105*/-
106-
107/*!-
108 \fn QPlatformCursor::QPlatformCursor()-
109-
110 Constructs a QPlatformCursor.-
111*/-
112QPlatformCursor::QPlatformCursor()-
113{-
114}-
115-
116QPoint QPlatformCursor::pos() const-
117{-
118 // As a fallback return the last mouse position seen by QGuiApplication.-
119 return QGuiApplicationPrivate::lastCursorPosition.toPoint();
never executed: return QGuiApplicationPrivate::lastCursorPosition.toPoint();
0
120}-
121-
122void QPlatformCursor::setPos(const QPoint &pos)-
123{-
124 static bool firstCall = true;-
125 if (firstCall) {
firstCallDescription
TRUEnever evaluated
FALSEnever evaluated
0
126 firstCall = false;-
127 qWarning("This plugin does not support QCursor::setPos()"-
128 "; emulating movement within the application.");-
129 }
never executed: end of block
0
130 QWindowSystemInterface::handleMouseEvent(0, pos, pos, Qt::NoButton);-
131}
never executed: end of block
0
132-
133// End of display and pointer event handling code-
134// Beginning of built-in cursor graphics-
135// from src/gui/embedded/QGraphicsSystemCursorImage_qws.cpp-
136-
137/*!-
138 \class QPlatformCursorImage-
139 \since 5.0-
140 \internal-
141 \preliminary-
142 \ingroup qpa-
143-
144 \brief The QPlatformCursorImage class provides a set of graphics-
145 intended to be used as cursors.-
146-
147 \sa QPlatformCursor-
148*/-
149-
150static QPlatformCursorImage *systemCursorTable[Qt::LastCursor+1];-
151static bool systemCursorTableInit = false;-
152-
153// 16 x 16-
154static const uchar cur_arrow_bits[] = {-
155 0x07, 0x00, 0x39, 0x00, 0xc1, 0x01, 0x02, 0x0e, 0x02, 0x10, 0x02, 0x08,-
156 0x04, 0x04, 0x04, 0x02, 0x04, 0x04, 0x88, 0x08, 0x48, 0x11, 0x28, 0x22,-
157 0x10, 0x44, 0x00, 0x28, 0x00, 0x10, 0x00, 0x00 };-
158static const uchar mcur_arrow_bits[] = {-
159 0x07, 0x00, 0x3f, 0x00, 0xff, 0x01, 0xfe, 0x0f, 0xfe, 0x1f, 0xfe, 0x0f,-
160 0xfc, 0x07, 0xfc, 0x03, 0xfc, 0x07, 0xf8, 0x0f, 0x78, 0x1f, 0x38, 0x3e,-
161 0x10, 0x7c, 0x00, 0x38, 0x00, 0x10, 0x00, 0x00 };-
162-
163static const unsigned char cur_up_arrow_bits[] = {-
164 0x80, 0x00, 0x40, 0x01, 0x40, 0x01, 0x20, 0x02, 0x20, 0x02, 0x10, 0x04,-
165 0x10, 0x04, 0x08, 0x08, 0x78, 0x0f, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01,-
166 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0xc0, 0x01};-
167static const unsigned char mcur_up_arrow_bits[] = {-
168 0x80, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0xe0, 0x03, 0xe0, 0x03, 0xf0, 0x07,-
169 0xf0, 0x07, 0xf8, 0x0f, 0xf8, 0x0f, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,-
170 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01};-
171-
172static const unsigned char cur_cross_bits[] = {-
173 0xc0, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01,-
174 0x7f, 0x7f, 0x01, 0x40, 0x7f, 0x7f, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01,-
175 0x40, 0x01, 0x40, 0x01, 0xc0, 0x01, 0x00, 0x00};-
176static const unsigned char mcur_cross_bits[] = {-
177 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,-
178 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,-
179 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0x00, 0x00};-
180-
181static const uchar cur_ibeam_bits[] = {-
182 0x00, 0x00, 0xe0, 0x03, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00,-
183 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00,-
184 0x80, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00 };-
185static const uchar mcur_ibeam_bits[] = {-
186 0xf0, 0x07, 0xf0, 0x07, 0xf0, 0x07, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,-
187 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,-
188 0xf0, 0x07, 0xf0, 0x07, 0xf0, 0x07, 0x00, 0x00 };-
189-
190static const uchar cur_ver_bits[] = {-
191 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xc0, 0x03, 0xe0, 0x07, 0xf0, 0x0f,-
192 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xf0, 0x0f,-
193 0xe0, 0x07, 0xc0, 0x03, 0x80, 0x01, 0x00, 0x00 };-
194static const uchar mcur_ver_bits[] = {-
195 0x00, 0x00, 0x80, 0x03, 0xc0, 0x07, 0xe0, 0x0f, 0xf0, 0x1f, 0xf8, 0x3f,-
196 0xfc, 0x7f, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xfc, 0x7f, 0xf8, 0x3f,-
197 0xf0, 0x1f, 0xe0, 0x0f, 0xc0, 0x07, 0x80, 0x03 };-
198-
199static const uchar cur_hor_bits[] = {-
200 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x30, 0x18,-
201 0x38, 0x38, 0xfc, 0x7f, 0xfc, 0x7f, 0x38, 0x38, 0x30, 0x18, 0x20, 0x08,-
202 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
203static const uchar mcur_hor_bits[] = {-
204 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x60, 0x0c, 0x70, 0x1c, 0x78, 0x3c,-
205 0xfc, 0x7f, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfc, 0x7f, 0x78, 0x3c,-
206 0x70, 0x1c, 0x60, 0x0c, 0x40, 0x04, 0x00, 0x00 };-
207static const uchar cur_bdiag_bits[] = {-
208 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x3e, 0x00, 0x3c, 0x00, 0x3e,-
209 0x00, 0x37, 0x88, 0x23, 0xd8, 0x01, 0xf8, 0x00, 0x78, 0x00, 0xf8, 0x00,-
210 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
211static const uchar mcur_bdiag_bits[] = {-
212 0x00, 0x00, 0xc0, 0x7f, 0x80, 0x7f, 0x00, 0x7f, 0x00, 0x7e, 0x04, 0x7f,-
213 0x8c, 0x7f, 0xdc, 0x77, 0xfc, 0x63, 0xfc, 0x41, 0xfc, 0x00, 0xfc, 0x01,-
214 0xfc, 0x03, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00 };-
215static const uchar cur_fdiag_bits[] = {-
216 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0xf8, 0x00, 0x78, 0x00,-
217 0xf8, 0x00, 0xd8, 0x01, 0x88, 0x23, 0x00, 0x37, 0x00, 0x3e, 0x00, 0x3c,-
218 0x00, 0x3e, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00 };-
219static const uchar mcur_fdiag_bits[] = {-
220 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0xfc, 0x03, 0xfc, 0x01, 0xfc, 0x00,-
221 0xfc, 0x41, 0xfc, 0x63, 0xdc, 0x77, 0x8c, 0x7f, 0x04, 0x7f, 0x00, 0x7e,-
222 0x00, 0x7f, 0x80, 0x7f, 0xc0, 0x7f, 0x00, 0x00 };-
223-
224// 20 x 20-
225static const uchar forbidden_bits[] = {-
226 0x00,0x00,0x00,0x80,0x1f,0x00,0xe0,0x7f,0x00,0xf0,0xf0,0x00,0x38,0xc0,0x01,-
227 0x7c,0x80,0x03,0xec,0x00,0x03,0xce,0x01,0x07,0x86,0x03,0x06,0x06,0x07,0x06,-
228 0x06,0x0e,0x06,0x06,0x1c,0x06,0x0e,0x38,0x07,0x0c,0x70,0x03,0x1c,0xe0,0x03,-
229 0x38,0xc0,0x01,0xf0,0xe0,0x00,0xe0,0x7f,0x00,0x80,0x1f,0x00,0x00,0x00,0x00 };-
230-
231static const uchar forbiddenm_bits[] = {-
232 0x80,0x1f,0x00,0xe0,0x7f,0x00,0xf0,0xff,0x00,0xf8,0xff,0x01,0xfc,0xf0,0x03,-
233 0xfe,0xc0,0x07,0xfe,0x81,0x07,0xff,0x83,0x0f,0xcf,0x07,0x0f,0x8f,0x0f,0x0f,-
234 0x0f,0x1f,0x0f,0x0f,0x3e,0x0f,0x1f,0xfc,0x0f,0x1e,0xf8,0x07,0x3e,0xf0,0x07,-
235 0xfc,0xe0,0x03,0xf8,0xff,0x01,0xf0,0xff,0x00,0xe0,0x7f,0x00,0x80,0x1f,0x00};-
236-
237// 32 x 32-
238static const uchar wait_data_bits[] = {-
239 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
240 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00,-
241 0x00, 0x04, 0x40, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x08, 0x20, 0x00,-
242 0x00, 0x08, 0x20, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x08, 0x20, 0x00,-
243 0x00, 0x50, 0x15, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x40, 0x05, 0x00,-
244 0x00, 0x80, 0x02, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x20, 0x08, 0x00,-
245 0x00, 0x10, 0x10, 0x00, 0x00, 0x08, 0x21, 0x00, 0x00, 0x88, 0x22, 0x00,-
246 0x00, 0x48, 0x25, 0x00, 0x00, 0xa8, 0x2a, 0x00, 0x00, 0xfc, 0x7f, 0x00,-
247 0x00, 0x04, 0x40, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,-
248 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
249 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
250static const uchar wait_mask_bits[] = {-
251 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
252 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00,-
253 0x00, 0xfc, 0x7f, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0xf8, 0x3f, 0x00,-
254 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00,-
255 0x00, 0xf0, 0x1f, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xc0, 0x07, 0x00,-
256 0x00, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0xe0, 0x0f, 0x00,-
257 0x00, 0xf0, 0x1f, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00,-
258 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xfc, 0x7f, 0x00,-
259 0x00, 0xfc, 0x7f, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,-
260 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
261 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
262-
263static const uchar hsplit_bits[] = {-
264 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
265 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
266 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00,-
267 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00,-
268 0x00, 0x41, 0x82, 0x00, 0x80, 0x41, 0x82, 0x01, 0xc0, 0x7f, 0xfe, 0x03,-
269 0x80, 0x41, 0x82, 0x01, 0x00, 0x41, 0x82, 0x00, 0x00, 0x40, 0x02, 0x00,-
270 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00,-
271 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,-
272 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
273 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
274 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
275static const uchar hsplitm_bits[] = {-
276 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
277 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
278 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00,-
279 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe2, 0x47, 0x00, 0x00, 0xe3, 0xc7, 0x00,-
280 0x80, 0xe3, 0xc7, 0x01, 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07,-
281 0xc0, 0xff, 0xff, 0x03, 0x80, 0xe3, 0xc7, 0x01, 0x00, 0xe3, 0xc7, 0x00,-
282 0x00, 0xe2, 0x47, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00,-
283 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,-
284 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
285 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
286 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
287static const uchar vsplit_bits[] = {-
288 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
289 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
290 0x00, 0x80, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xe0, 0x03, 0x00,-
291 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,-
292 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00,-
293 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00,-
294 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,-
295 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00,-
296 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
297 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
298 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
299static const uchar vsplitm_bits[] = {-
300 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
301 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,-
302 0x00, 0xc0, 0x01, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xf0, 0x07, 0x00,-
303 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00,-
304 0x00, 0xc0, 0x01, 0x00, 0x80, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0x00,-
305 0x80, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0x00,-
306 0x80, 0xff, 0xff, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00,-
307 0x00, 0xc0, 0x01, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xf0, 0x07, 0x00,-
308 0x00, 0xe0, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00,-
309 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
310 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
311static const uchar phand_bits[] = {-
312 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00,-
313 0x7e, 0x04, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x70, 0x08, 0x00, 0x00,-
314 0x08, 0x08, 0x00, 0x00, 0x70, 0x14, 0x00, 0x00, 0x08, 0x22, 0x00, 0x00,-
315 0x30, 0x41, 0x00, 0x00, 0xc0, 0x20, 0x00, 0x00, 0x40, 0x12, 0x00, 0x00,-
316 0x80, 0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,-
317 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
318 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
319 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
320 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
321 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
322 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
323static const uchar phandm_bits[] = {-
324 0xfe, 0x01, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00,-
325 0xff, 0x0f, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00,-
326 0xfc, 0x1f, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00,-
327 0xf8, 0xff, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00,-
328 0xc0, 0x1f, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,-
329 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
331 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
332 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
333 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
334 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
335-
336static const uchar size_all_data_bits[] = {-
337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
338 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
339 0x00, 0x80, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xe0, 0x03, 0x00,-
340 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,-
341 0x00, 0x80, 0x00, 0x00, 0x00, 0x81, 0x40, 0x00, 0x80, 0x81, 0xc0, 0x00,-
342 0xc0, 0xff, 0xff, 0x01, 0x80, 0x81, 0xc0, 0x00, 0x00, 0x81, 0x40, 0x00,-
343 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,-
344 0x00, 0x80, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x00,-
345 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
346 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
347 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
348static const uchar size_all_mask_bits[] = {-
349 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
350 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,-
351 0x00, 0xc0, 0x01, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xf0, 0x07, 0x00,-
352 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc2, 0x21, 0x00,-
353 0x00, 0xc3, 0x61, 0x00, 0x80, 0xc3, 0xe1, 0x00, 0xc0, 0xff, 0xff, 0x01,-
354 0xe0, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0x01, 0x80, 0xc3, 0xe1, 0x00,-
355 0x00, 0xc3, 0x61, 0x00, 0x00, 0xc2, 0x21, 0x00, 0x00, 0xc0, 0x01, 0x00,-
356 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0xe0, 0x03, 0x00,-
357 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
358 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
359 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };-
360-
361static const uchar whatsthis_bits[] = {-
362 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0xf0, 0x07, 0x00,-
363 0x09, 0x18, 0x0e, 0x00, 0x11, 0x1c, 0x0e, 0x00, 0x21, 0x1c, 0x0e, 0x00,-
364 0x41, 0x1c, 0x0e, 0x00, 0x81, 0x1c, 0x0e, 0x00, 0x01, 0x01, 0x07, 0x00,-
365 0x01, 0x82, 0x03, 0x00, 0xc1, 0xc7, 0x01, 0x00, 0x49, 0xc0, 0x01, 0x00,-
366 0x95, 0xc0, 0x01, 0x00, 0x93, 0xc0, 0x01, 0x00, 0x21, 0x01, 0x00, 0x00,-
367 0x20, 0xc1, 0x01, 0x00, 0x40, 0xc2, 0x01, 0x00, 0x40, 0x02, 0x00, 0x00,-
368 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
369 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
370 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
371 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
372 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };-
373static const uchar whatsthism_bits[] = {-
374 0x01, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x07, 0x00, 0x07, 0xf8, 0x0f, 0x00,-
375 0x0f, 0xfc, 0x1f, 0x00, 0x1f, 0x3e, 0x1f, 0x00, 0x3f, 0x3e, 0x1f, 0x00,-
376 0x7f, 0x3e, 0x1f, 0x00, 0xff, 0x3e, 0x1f, 0x00, 0xff, 0x9d, 0x0f, 0x00,-
377 0xff, 0xc3, 0x07, 0x00, 0xff, 0xe7, 0x03, 0x00, 0x7f, 0xe0, 0x03, 0x00,-
378 0xf7, 0xe0, 0x03, 0x00, 0xf3, 0xe0, 0x03, 0x00, 0xe1, 0xe1, 0x03, 0x00,-
379 0xe0, 0xe1, 0x03, 0x00, 0xc0, 0xe3, 0x03, 0x00, 0xc0, 0xe3, 0x03, 0x00,-
380 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
381 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
382 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
383 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
384 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };-
385-
386static const uchar busy_bits[] = {-
387 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,-
388 0x09, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,-
389 0x41, 0xe0, 0xff, 0x00, 0x81, 0x20, 0x80, 0x00, 0x01, 0xe1, 0xff, 0x00,-
390 0x01, 0x42, 0x40, 0x00, 0xc1, 0x47, 0x40, 0x00, 0x49, 0x40, 0x55, 0x00,-
391 0x95, 0x80, 0x2a, 0x00, 0x93, 0x00, 0x15, 0x00, 0x21, 0x01, 0x0a, 0x00,-
392 0x20, 0x01, 0x11, 0x00, 0x40, 0x82, 0x20, 0x00, 0x40, 0x42, 0x44, 0x00,-
393 0x80, 0x41, 0x4a, 0x00, 0x00, 0x40, 0x55, 0x00, 0x00, 0xe0, 0xff, 0x00,-
394 0x00, 0x20, 0x80, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,-
395 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
396 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
397 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};-
398static const uchar busym_bits[] = {-
399 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,-
400 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00,-
401 0x7f, 0xe0, 0xff, 0x00, 0xff, 0xe0, 0xff, 0x00, 0xff, 0xe1, 0xff, 0x00,-
402 0xff, 0xc3, 0x7f, 0x00, 0xff, 0xc7, 0x7f, 0x00, 0x7f, 0xc0, 0x7f, 0x00,-
403 0xf7, 0x80, 0x3f, 0x00, 0xf3, 0x00, 0x1f, 0x00, 0xe1, 0x01, 0x0e, 0x00,-
404 0xe0, 0x01, 0x1f, 0x00, 0xc0, 0x83, 0x3f, 0x00, 0xc0, 0xc3, 0x7f, 0x00,-
405 0x80, 0xc1, 0x7f, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0xe0, 0xff, 0x00,-
406 0x00, 0xe0, 0xff, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,-
407 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
408 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,-
409 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};-
410-
411// 16 x 16-
412static const uchar openhand_bits[] = {-
413 0x80,0x01,0x58,0x0e,0x64,0x12,0x64,0x52,0x48,0xb2,0x48,0x92,-
414 0x16,0x90,0x19,0x80,0x11,0x40,0x02,0x40,0x04,0x40,0x04,0x20,-
415 0x08,0x20,0x10,0x10,0x20,0x10,0x00,0x00};-
416static const uchar openhandm_bits[] = {-
417 0x80,0x01,0xd8,0x0f,0xfc,0x1f,0xfc,0x5f,0xf8,0xff,0xf8,0xff,-
418 0xfe,0xff,0xff,0xff,0xff,0x7f,0xfe,0x7f,0xfc,0x7f,0xfc,0x3f,-
419 0xf8,0x3f,0xf0,0x1f,0xe0,0x1f,0x00,0x00};-
420static const uchar closedhand_bits[] = {-
421 0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x0d,0x48,0x32,0x08,0x50,-
422 0x10,0x40,0x18,0x40,0x04,0x40,0x04,0x20,0x08,0x20,0x10,0x10,-
423 0x20,0x10,0x20,0x10,0x00,0x00,0x00,0x00};-
424static const uchar closedhandm_bits[] = {-
425 0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x0d,0xf8,0x3f,0xf8,0x7f,-
426 0xf0,0x7f,0xf8,0x7f,0xfc,0x7f,0xfc,0x3f,0xf8,0x3f,0xf0,0x1f,-
427 0xe0,0x1f,0xe0,0x1f,0x00,0x00,0x00,0x00};-
428-
429void QPlatformCursorImage::createSystemCursor(int id)-
430{-
431 if (!systemCursorTableInit) {
!systemCursorTableInitDescription
TRUEnever evaluated
FALSEnever evaluated
0
432 for (int i = 0; i <= Qt::LastCursor; i++)
i <= Qt::LastCursorDescription
TRUEnever evaluated
FALSEnever evaluated
0
433 systemCursorTable[i] = 0;
never executed: systemCursorTable[i] = 0;
0
434 systemCursorTableInit = true;-
435 }
never executed: end of block
0
436 switch (id) {-
437 // 16x16 cursors-
438 case Qt::ArrowCursor:
never executed: case Qt::ArrowCursor:
0
439 systemCursorTable[Qt::ArrowCursor] =-
440 new QPlatformCursorImage(cur_arrow_bits, mcur_arrow_bits, 16, 16, 0, 0);-
441 break;
never executed: break;
0
442-
443 case Qt::UpArrowCursor:
never executed: case Qt::UpArrowCursor:
0
444 systemCursorTable[Qt::UpArrowCursor] =-
445 new QPlatformCursorImage(cur_up_arrow_bits, mcur_up_arrow_bits, 16, 16, 7, 0);-
446 break;
never executed: break;
0
447-
448 case Qt::CrossCursor:
never executed: case Qt::CrossCursor:
0
449 systemCursorTable[Qt::CrossCursor] =-
450 new QPlatformCursorImage(cur_cross_bits, mcur_cross_bits, 16, 16, 7, 7);-
451 break;
never executed: break;
0
452-
453 case Qt::IBeamCursor:
never executed: case Qt::IBeamCursor:
0
454 systemCursorTable[Qt::IBeamCursor] =-
455 new QPlatformCursorImage(cur_ibeam_bits, mcur_ibeam_bits, 16, 16, 7, 7);-
456 break;
never executed: break;
0
457-
458 case Qt::SizeVerCursor:
never executed: case Qt::SizeVerCursor:
0
459 systemCursorTable[Qt::SizeVerCursor] =-
460 new QPlatformCursorImage(cur_ver_bits, mcur_ver_bits, 16, 16, 7, 7);-
461 break;
never executed: break;
0
462-
463 case Qt::SizeHorCursor:
never executed: case Qt::SizeHorCursor:
0
464 systemCursorTable[Qt::SizeHorCursor] =-
465 new QPlatformCursorImage(cur_hor_bits, mcur_hor_bits, 16, 16, 7, 7);-
466 break;
never executed: break;
0
467-
468 case Qt::SizeBDiagCursor:
never executed: case Qt::SizeBDiagCursor:
0
469 systemCursorTable[Qt::SizeBDiagCursor] =-
470 new QPlatformCursorImage(cur_bdiag_bits, mcur_bdiag_bits, 16, 16, 7, 7);-
471 break;
never executed: break;
0
472-
473 case Qt::SizeFDiagCursor:
never executed: case Qt::SizeFDiagCursor:
0
474 systemCursorTable[Qt::SizeFDiagCursor] =-
475 new QPlatformCursorImage(cur_fdiag_bits, mcur_fdiag_bits, 16, 16, 7, 7);-
476 break;
never executed: break;
0
477-
478 case Qt::BlankCursor:
never executed: case Qt::BlankCursor:
0
479 systemCursorTable[Qt::BlankCursor] =-
480 new QPlatformCursorImage(0, 0, 0, 0, 0, 0);-
481 break;
never executed: break;
0
482-
483 // 20x20 cursors-
484 case Qt::ForbiddenCursor:
never executed: case Qt::ForbiddenCursor:
0
485 systemCursorTable[Qt::ForbiddenCursor] =-
486 new QPlatformCursorImage(forbidden_bits, forbiddenm_bits, 20, 20, 10, 10);-
487 break;
never executed: break;
0
488-
489 // 32x32 cursors-
490 case Qt::WaitCursor:
never executed: case Qt::WaitCursor:
0
491 systemCursorTable[Qt::WaitCursor] =-
492 new QPlatformCursorImage(wait_data_bits, wait_mask_bits, 32, 32, 15, 15);-
493 break;
never executed: break;
0
494-
495 case Qt::SplitVCursor:
never executed: case Qt::SplitVCursor:
0
496 systemCursorTable[Qt::SplitVCursor] =-
497 new QPlatformCursorImage(vsplit_bits, vsplitm_bits, 32, 32, 15, 15);-
498 break;
never executed: break;
0
499-
500 case Qt::SplitHCursor:
never executed: case Qt::SplitHCursor:
0
501 systemCursorTable[Qt::SplitHCursor] =-
502 new QPlatformCursorImage(hsplit_bits, hsplitm_bits, 32, 32, 15, 15);-
503 break;
never executed: break;
0
504-
505 case Qt::SizeAllCursor:
never executed: case Qt::SizeAllCursor:
0
506 systemCursorTable[Qt::SizeAllCursor] =-
507 new QPlatformCursorImage(size_all_data_bits, size_all_mask_bits, 32, 32, 15, 15);-
508 break;
never executed: break;
0
509-
510 case Qt::PointingHandCursor:
never executed: case Qt::PointingHandCursor:
0
511 systemCursorTable[Qt::PointingHandCursor] =-
512 new QPlatformCursorImage(phand_bits, phandm_bits, 32, 32, 0, 0);-
513 break;
never executed: break;
0
514-
515 case Qt::WhatsThisCursor:
never executed: case Qt::WhatsThisCursor:
0
516 systemCursorTable[Qt::WhatsThisCursor] =-
517 new QPlatformCursorImage(whatsthis_bits, whatsthism_bits, 32, 32, 0, 0);-
518 break;
never executed: break;
0
519 case Qt::BusyCursor:
never executed: case Qt::BusyCursor:
0
520 systemCursorTable[Qt::BusyCursor] =-
521 new QPlatformCursorImage(busy_bits, busym_bits, 32, 32, 0, 0);-
522 break;
never executed: break;
0
523-
524 case Qt::OpenHandCursor:
never executed: case Qt::OpenHandCursor:
0
525 systemCursorTable[Qt::OpenHandCursor] =-
526 new QPlatformCursorImage(openhand_bits, openhandm_bits, 16, 16, 8, 8);-
527 break;
never executed: break;
0
528 case Qt::ClosedHandCursor:
never executed: case Qt::ClosedHandCursor:
0
529 systemCursorTable[Qt::ClosedHandCursor] =-
530 new QPlatformCursorImage(closedhand_bits, closedhandm_bits, 16, 16, 8, 8);-
531 break;
never executed: break;
0
532 default:
never executed: default:
0
533 qWarning("Unknown system cursor %d", id);-
534 }
never executed: end of block
0
535}-
536-
537/*!-
538 \fn void QPlatformCursorImage::set(Qt::CursorShape id)-
539-
540 \brief Calling this method sets the cursor image to the specified shape-
541-
542 \a id is one of the defined Qt::CursorShape values.-
543-
544 If id is invalid, Qt::BitmapCursor, or unknown by the implementation,-
545 Qt::ArrowCursor is used instead.-
546*/-
547-
548void QPlatformCursorImage::set(Qt::CursorShape id)-
549{-
550 QPlatformCursorImage *cursor = 0;-
551 if (id >= 0 && id <= Qt::LastCursor) {
id >= 0Description
TRUEnever evaluated
FALSEnever evaluated
id <= Qt::LastCursorDescription
TRUEnever evaluated
FALSEnever evaluated
0
552 if (!systemCursorTable[id])
!systemCursorTable[id]Description
TRUEnever evaluated
FALSEnever evaluated
0
553 createSystemCursor(id);
never executed: createSystemCursor(id);
0
554 cursor = systemCursorTable[id];-
555 }
never executed: end of block
0
556-
557 if (cursor == 0) {
cursor == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
558 if (!systemCursorTable[Qt::ArrowCursor])
!systemCursorT...::ArrowCursor]Description
TRUEnever evaluated
FALSEnever evaluated
0
559 createSystemCursor(Qt::ArrowCursor);
never executed: createSystemCursor(Qt::ArrowCursor);
0
560 cursor = systemCursorTable[Qt::ArrowCursor];-
561 }
never executed: end of block
0
562 cursorImage = cursor->cursorImage;-
563 hot = cursor->hot;-
564}
never executed: end of block
0
565-
566/*!-
567 Sets the cursor image to the given \a image, with the hotspot at the-
568 point specified by (\a hx, \a hy).-
569*/-
570-
571void QPlatformCursorImage::set(const QImage &image, int hx, int hy)-
572{-
573 hot.setX(hx);-
574 hot.setY(hy);-
575 cursorImage = image;-
576}
never executed: end of block
0
577-
578/*!-
579 \fn void QPlatformCursorImage::set(const uchar *data, const uchar *mask, int width, int height, int hx, int hy)-
580-
581 Sets the cursor image to the graphic represented by the combination of-
582 \a data and \a mask, with dimensions given by \a width and \a height and a-
583 hotspot at the point specified by (\a hx, \a hy).-
584-
585 The image data specified by \a data must be supplied in the format-
586 described by QImage::Format_Indexed8.-
587-
588 The corresponding mask data specified by \a mask must be supplied in a-
589 character array containing packed 1 bit per pixel format data, with any-
590 padding bits at the end of the array. Bits of value 0 represent transparent-
591 pixels in the image data.-
592*/-
593void QPlatformCursorImage::set(const uchar *data, const uchar *mask,-
594 int width, int height, int hx, int hy)-
595{-
596 hot.setX(hx);-
597 hot.setY(hy);-
598-
599 cursorImage = QImage(width,height, QImage::Format_Indexed8);-
600-
601 if (!width || !height || !data || !mask || cursorImage.isNull())
!widthDescription
TRUEnever evaluated
FALSEnever evaluated
!heightDescription
TRUEnever evaluated
FALSEnever evaluated
!dataDescription
TRUEnever evaluated
FALSEnever evaluated
!maskDescription
TRUEnever evaluated
FALSEnever evaluated
cursorImage.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
0
602 return;
never executed: return;
0
603-
604 cursorImage.setColorCount(3);-
605 cursorImage.setColor(0, 0xff000000);-
606 cursorImage.setColor(1, 0xffffffff);-
607 cursorImage.setColor(2, 0x00000000);-
608-
609 int bytesPerLine = (width + 7) / 8;-
610 int p = 0;-
611 int d, m;-
612-
613 int x = -1, w = 0;-
614-
615 uchar *cursor_data = cursorImage.bits();-
616 int bpl = cursorImage.bytesPerLine();-
617 for (int i = 0; i < height; i++)
i < heightDescription
TRUEnever evaluated
FALSEnever evaluated
0
618 {-
619 for (int j = 0; j < bytesPerLine; j++, data++, mask++)
j < bytesPerLineDescription
TRUEnever evaluated
FALSEnever evaluated
0
620 {-
621 for (int b = 0; b < 8 && j*8+b < width; b++)
b < 8Description
TRUEnever evaluated
FALSEnever evaluated
j*8+b < widthDescription
TRUEnever evaluated
FALSEnever evaluated
0
622 {-
623 d = *data & (1 << b);-
624 m = *mask & (1 << b);-
625 if (d && m) p = 0;
never executed: p = 0;
dDescription
TRUEnever evaluated
FALSEnever evaluated
mDescription
TRUEnever evaluated
FALSEnever evaluated
0
626 else if (!d && m) p = 1;
never executed: p = 1;
!dDescription
TRUEnever evaluated
FALSEnever evaluated
mDescription
TRUEnever evaluated
FALSEnever evaluated
0
627 else p = 2;
never executed: p = 2;
0
628 cursor_data[j*8+b] = p;-
629-
630 // calc region-
631 if (x < 0 && m)
x < 0Description
TRUEnever evaluated
FALSEnever evaluated
mDescription
TRUEnever evaluated
FALSEnever evaluated
0
632 x = j*8+b;
never executed: x = j*8+b;
0
633 else if (x >= 0 && !m) {
x >= 0Description
TRUEnever evaluated
FALSEnever evaluated
!mDescription
TRUEnever evaluated
FALSEnever evaluated
0
634 x = -1;-
635 w = 0;-
636 }
never executed: end of block
0
637 if (m)
mDescription
TRUEnever evaluated
FALSEnever evaluated
0
638 w++;
never executed: w++;
0
639 }
never executed: end of block
0
640 }
never executed: end of block
0
641 if (x >= 0) {
x >= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
642 x = -1;-
643 w = 0;-
644 }
never executed: end of block
0
645 cursor_data += bpl;-
646 }
never executed: end of block
0
647-
648}
never executed: end of block
0
649-
650/*!-
651 \fn QPlatformCursorImage::QPlatformCursorImage(const uchar *data, const uchar *mask, int width, int height, int hotX, int hotY)-
652-
653 Sets the cursor image to the graphic represented by the combination of-
654 \a data and \a mask, with dimensions given by \a width and \a height and a-
655 hotspot at the point specified by (\a hotX, \a hotY).-
656-
657 \sa set()-
658*/-
659-
660/*!-
661 \fn QImage *QPlatformCursorImage::image()-
662-
663 \brief Return the cursor graphic as a pointer to a QImage-
664*/-
665-
666/*!-
667 \fn QPoint QPlatformCursorImage::hotspot() const-
668-
669 \brief Return the cursor's hotspot-
670*/-
671-
672QT_END_NAMESPACE-
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9