1 /*
2 * kis_cursor.cc - part of KImageShop
3 *
4 * Copyright (c) 1999 Matthias Elter <elter@kde.org>
5 * Copyright (c) 2004 Adrian Page <adrian@pagenet.plus.com>
6 * Copyright (c) 2013 David Revoy <info@davidrevoy.com>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 */
22
23 #include "kis_cursor.h"
24
25
26 #include <QtGlobal>
27 #include <QCursor>
28
29 #include "kis_cursor_cache.h"
30
KisCursor()31 KisCursor::KisCursor() {}
32
33 /*
34 * Predefined Qt cursors
35 */
arrowCursor()36 QCursor KisCursor::arrowCursor()
37 {
38 return Qt::ArrowCursor;
39 }
40
upArrowCursor()41 QCursor KisCursor::upArrowCursor()
42 {
43 return Qt::UpArrowCursor;
44 }
45
crossCursor()46 QCursor KisCursor::crossCursor()
47 {
48 return load("cursor-cross.xpm");
49 }
50
roundCursor()51 QCursor KisCursor::roundCursor()
52 {
53 return load("cursor-round.xpm");
54 }
55
pixelBlackCursor()56 QCursor KisCursor::pixelBlackCursor()
57 {
58 return load("cursor-pixel-black.xpm");
59 }
60
pixelWhiteCursor()61 QCursor KisCursor::pixelWhiteCursor()
62 {
63 return load("cursor-pixel-white.xpm");
64 }
65
waitCursor()66 QCursor KisCursor::waitCursor()
67 {
68 return Qt::WaitCursor;
69 }
70
ibeamCursor()71 QCursor KisCursor::ibeamCursor()
72 {
73 return Qt::IBeamCursor;
74 }
75
sizeVerCursor()76 QCursor KisCursor::sizeVerCursor()
77 {
78 return Qt::SizeVerCursor;
79 }
80
sizeHorCursor()81 QCursor KisCursor::sizeHorCursor()
82 {
83 return Qt::SizeHorCursor;
84 }
85
sizeBDiagCursor()86 QCursor KisCursor::sizeBDiagCursor()
87 {
88 return Qt::SizeBDiagCursor;
89 }
90
sizeFDiagCursor()91 QCursor KisCursor::sizeFDiagCursor()
92 {
93 return Qt::SizeFDiagCursor;
94 }
95
sizeAllCursor()96 QCursor KisCursor::sizeAllCursor()
97 {
98 return Qt::SizeAllCursor;
99 }
100
blankCursor()101 QCursor KisCursor::blankCursor()
102 {
103 return Qt::BlankCursor;
104 }
105
splitVCursor()106 QCursor KisCursor::splitVCursor()
107 {
108 return Qt::SplitVCursor;
109 }
110
splitHCursor()111 QCursor KisCursor::splitHCursor()
112 {
113 return Qt::SplitHCursor;
114 }
115
pointingHandCursor()116 QCursor KisCursor::pointingHandCursor()
117 {
118 return Qt::PointingHandCursor;
119 }
120
121
pickerCursor()122 QCursor KisCursor::pickerCursor()
123 {
124 return pickerLayerForegroundCursor();
125 }
126
pickerPlusCursor()127 QCursor KisCursor::pickerPlusCursor()
128 {
129 return KisCursorCache::instance()->pickerPlusCursor;
130 }
131
pickerMinusCursor()132 QCursor KisCursor::pickerMinusCursor()
133 {
134 return KisCursorCache::instance()->pickerMinusCursor;
135 }
136
pickLayerCursor()137 QCursor KisCursor::pickLayerCursor()
138 {
139 return load("precise-pick-layer-icon.xpm", 7, 23);
140 }
141
penCursor()142 QCursor KisCursor::penCursor()
143 {
144 return KisCursorCache::instance()->penCursor;
145 }
146
brushCursor()147 QCursor KisCursor::brushCursor()
148 {
149 return KisCursorCache::instance()->brushCursor;
150 }
151
airbrushCursor()152 QCursor KisCursor::airbrushCursor()
153 {
154 return KisCursorCache::instance()->airbrushCursor;
155 }
156
eraserCursor()157 QCursor KisCursor::eraserCursor()
158 {
159 return KisCursorCache::instance()->eraserCursor;
160 }
161
fillerCursor()162 QCursor KisCursor::fillerCursor()
163 {
164 return KisCursorCache::instance()->fillerCursor;
165 }
166
colorChangerCursor()167 QCursor KisCursor::colorChangerCursor()
168 {
169 return KisCursorCache::instance()->colorChangerCursor;
170 }
171
zoomSmoothCursor()172 QCursor KisCursor::zoomSmoothCursor()
173 {
174 return load("zoom_smooth.xpm");
175 }
176
zoomDiscreteCursor()177 QCursor KisCursor::zoomDiscreteCursor()
178 {
179 return load("zoom_discrete.xpm");
180 }
181
rotateCanvasSmoothCursor()182 QCursor KisCursor::rotateCanvasSmoothCursor()
183 {
184 return load("rotate_smooth.xpm");
185 }
186
rotateCanvasDiscreteCursor()187 QCursor KisCursor::rotateCanvasDiscreteCursor()
188 {
189 return load("rotate_discrete.xpm");
190 }
191
pickerImageForegroundCursor()192 QCursor KisCursor::pickerImageForegroundCursor()
193 {
194 return load("color-picker_image_foreground.xpm", 8, 23);
195 }
196
pickerImageBackgroundCursor()197 QCursor KisCursor::pickerImageBackgroundCursor()
198 {
199 return load("color-picker_image_background.xpm", 8, 23);
200 }
201
pickerLayerForegroundCursor()202 QCursor KisCursor::pickerLayerForegroundCursor()
203 {
204 return load("color-picker_layer_foreground.xpm", 8, 23);
205 }
206
pickerLayerBackgroundCursor()207 QCursor KisCursor::pickerLayerBackgroundCursor()
208 {
209 return load("color-picker_layer_background.xpm", 8, 23);
210 }
211
changeExposureCursor()212 QCursor KisCursor::changeExposureCursor()
213 {
214 return load("exposure-cursor-gesture.xpm", 8, 23);
215 }
216
changeGammaCursor()217 QCursor KisCursor::changeGammaCursor()
218 {
219 return load("gamma-cursor-gesture.xpm", 8, 23);
220 }
221
triangleLeftHandedCursor()222 QCursor KisCursor::triangleLeftHandedCursor()
223 {
224 return load("cursor-triangle_lefthanded.xpm");
225 }
226
triangleRightHandedCursor()227 QCursor KisCursor::triangleRightHandedCursor()
228 {
229 return load("cursor-triangle_righthanded.xpm");
230 }
231
moveCursor()232 QCursor KisCursor::moveCursor()
233 {
234 return load("move-tool.png");
235 }
236
moveSelectionCursor()237 QCursor KisCursor::moveSelectionCursor()
238 {
239 return load("move-selection.png");
240 }
241
handCursor()242 QCursor KisCursor::handCursor()
243 {
244 return Qt::PointingHandCursor;
245 }
246
selectCursor()247 QCursor KisCursor::selectCursor()
248 {
249 return KisCursorCache::instance()->selectCursor;
250 }
251
openHandCursor()252 QCursor KisCursor::openHandCursor()
253 {
254 return Qt::OpenHandCursor;
255 }
256
closedHandCursor()257 QCursor KisCursor::closedHandCursor()
258 {
259 return Qt::ClosedHandCursor;
260 }
261
rotateCursor()262 QCursor KisCursor::rotateCursor()
263 {
264 return load("rotate_cursor.xpm");
265 }
266
meshCursorFree()267 QCursor KisCursor::meshCursorFree()
268 {
269 return load("mesh_cursor_free.png", 5, 5);
270 }
271
meshCursorLocked()272 QCursor KisCursor::meshCursorLocked()
273 {
274 return load("mesh_cursor_locked.png", 5, 5);
275 }
276
load(const QString & cursorName,int hotspotX,int hotspotY)277 QCursor KisCursor::load(const QString & cursorName, int hotspotX, int hotspotY)
278 {
279 return KisCursorCache::instance()->load(cursorName, hotspotX, hotspotY);
280 }
281