File indexing completed on 2024-05-12 16:02:26

0001 /*
0002  *  kis_cursor.cc - part of KImageShop
0003  *
0004  *  SPDX-FileCopyrightText: 1999 Matthias Elter <elter@kde.org>
0005  *  SPDX-FileCopyrightText: 2004 Adrian Page <adrian@pagenet.plus.com>
0006  *  SPDX-FileCopyrightText: 2013 David Revoy <info@davidrevoy.com>
0007  *
0008  *  SPDX-License-Identifier: GPL-2.0-or-later
0009  */
0010 
0011 #include "kis_cursor.h"
0012 
0013 
0014 #include <QtGlobal>
0015 #include <QCursor>
0016 
0017 #include "kis_cursor_cache.h"
0018 
0019 KisCursor::KisCursor() {}
0020 
0021 /*
0022  * Predefined Qt cursors
0023  */
0024 QCursor KisCursor::arrowCursor()
0025 {
0026     return Qt::ArrowCursor;
0027 }
0028 
0029 QCursor KisCursor::upArrowCursor()
0030 {
0031     return Qt::UpArrowCursor;
0032 }
0033 
0034 QCursor KisCursor::crossCursor()
0035 {
0036     return load("cursor-cross.xpm");
0037 }
0038 
0039 QCursor KisCursor::roundCursor()
0040 {
0041     return load("cursor-round.xpm");
0042 }
0043 
0044 QCursor KisCursor::pixelBlackCursor()
0045 {
0046     return load("cursor-pixel-black.xpm");
0047 }
0048 
0049 QCursor KisCursor::pixelWhiteCursor()
0050 {
0051     return load("cursor-pixel-white.xpm");
0052 }
0053 
0054 QCursor KisCursor::waitCursor()
0055 {
0056     return Qt::WaitCursor;
0057 }
0058 
0059 QCursor KisCursor::ibeamCursor()
0060 {
0061     return Qt::IBeamCursor;
0062 }
0063 
0064 QCursor KisCursor::sizeVerCursor()
0065 {
0066     return Qt::SizeVerCursor;
0067 }
0068 
0069 QCursor KisCursor::sizeHorCursor()
0070 {
0071     return Qt::SizeHorCursor;
0072 }
0073 
0074 QCursor KisCursor::sizeBDiagCursor()
0075 {
0076     return Qt::SizeBDiagCursor;
0077 }
0078 
0079 QCursor KisCursor::sizeFDiagCursor()
0080 {
0081     return Qt::SizeFDiagCursor;
0082 }
0083 
0084 QCursor KisCursor::sizeAllCursor()
0085 {
0086     return Qt::SizeAllCursor;
0087 }
0088 
0089 QCursor KisCursor::blankCursor()
0090 {
0091     return Qt::BlankCursor;
0092 }
0093 
0094 QCursor KisCursor::splitVCursor()
0095 {
0096     return Qt::SplitVCursor;
0097 }
0098 
0099 QCursor KisCursor::splitHCursor()
0100 {
0101     return Qt::SplitHCursor;
0102 }
0103 
0104 QCursor KisCursor::pointingHandCursor()
0105 {
0106     return Qt::PointingHandCursor;
0107 }
0108 
0109 
0110 QCursor KisCursor::samplerCursor()
0111 {
0112     return samplerLayerForegroundCursor();
0113 }
0114 
0115 QCursor KisCursor::pickLayerCursor()
0116 {
0117     return load("precise-pick-layer-icon.xpm", 7, 23);
0118 }
0119 
0120 QCursor KisCursor::zoomSmoothCursor()
0121 {
0122     return load("zoom_smooth.xpm");
0123 }
0124 
0125 QCursor KisCursor::zoomDiscreteCursor()
0126 {
0127     return load("zoom_discrete.xpm");
0128 }
0129 
0130 QCursor KisCursor::rotateCanvasSmoothCursor()
0131 {
0132     return load("rotate_smooth.xpm");
0133 }
0134 
0135 QCursor KisCursor::rotateCanvasDiscreteCursor()
0136 {
0137     return load("rotate_discrete.xpm");
0138 }
0139 
0140 QCursor KisCursor::samplerImageForegroundCursor()
0141 {
0142     return load("color-sampler_image_foreground.xpm", 8, 23);
0143 }
0144 
0145 QCursor KisCursor::samplerImageBackgroundCursor()
0146 {
0147     return load("color-sampler_image_background.xpm", 8, 23);
0148 }
0149 
0150 QCursor KisCursor::samplerLayerForegroundCursor()
0151 {
0152     return load("color-sampler_layer_foreground.xpm", 8, 23);
0153 }
0154 
0155 QCursor KisCursor::samplerLayerBackgroundCursor()
0156 {
0157     return load("color-sampler_layer_background.xpm", 8, 23);
0158 }
0159 
0160 QCursor KisCursor::changeExposureCursor()
0161 {
0162     return load("exposure-cursor-gesture.xpm");
0163 }
0164 
0165 QCursor KisCursor::changeGammaCursor()
0166 {
0167     return load("gamma-cursor-gesture.xpm");
0168 }
0169 
0170 QCursor KisCursor::triangleLeftHandedCursor()
0171 {
0172     return load("cursor-triangle_lefthanded.xpm");
0173 }
0174 
0175 QCursor KisCursor::triangleRightHandedCursor()
0176 {
0177     return load("cursor-triangle_righthanded.xpm");
0178 }
0179 
0180 QCursor KisCursor::eraserCursor()
0181 {
0182     return load("cursor-eraser.xpm", 2, 2);
0183 }
0184 
0185 QCursor KisCursor::moveCursor()
0186 {
0187     return load("move-tool.xpm");
0188 }
0189 
0190 QCursor KisCursor::moveSelectionCursor()
0191 {
0192     return load("move-selection.xpm", 11, 11);
0193 }
0194 
0195 QCursor KisCursor::handCursor()
0196 {
0197     return Qt::PointingHandCursor;
0198 }
0199 
0200 QCursor KisCursor::openHandCursor()
0201 {
0202     return Qt::OpenHandCursor;
0203 }
0204 
0205 QCursor KisCursor::closedHandCursor()
0206 {
0207     return Qt::ClosedHandCursor;
0208 }
0209 
0210 QCursor KisCursor::rotateCursor()
0211 {
0212     return load("rotate_cursor.xpm");
0213 }
0214 
0215 QCursor KisCursor::meshCursorFree()
0216 {
0217     return load("mesh_cursor_free.png", 5, 5);
0218 }
0219 
0220 QCursor KisCursor::meshCursorLocked()
0221 {
0222     return load("mesh_cursor_locked.png", 5, 5);
0223 }
0224 
0225 QCursor KisCursor::load(const QString & cursorName, int hotspotX, int hotspotY)
0226 {
0227     return KisCursorCache::instance()->load(cursorName, hotspotX, hotspotY);
0228 }