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