[Bf-blender-cvs] [387fe3607da] master: UI: Add high quality cursors on macOS
William Reynish
noreply at git.blender.org
Fri Sep 27 20:41:27 CEST 2019
Commit: 387fe3607da865e8cd4392e214f9e85d99f48d36
Author: William Reynish
Date: Fri Sep 27 20:41:22 2019 +0200
Branches: master
https://developer.blender.org/rB387fe3607da865e8cd4392e214f9e85d99f48d36
UI: Add high quality cursors on macOS
This adds the same high quality cursors on macOS as we have on Windows.
These are stored as 32*32 pt PDFs, same as the built-in OS cursors
Reviewed by: Brecht Van Lommel
Differential Revision: https://developer.blender.org/D5907
===================================================================
M intern/ghost/intern/GHOST_WindowCocoa.mm
A release/darwin/Blender.app/Contents/Resources/arrowdown.pdf
A release/darwin/Blender.app/Contents/Resources/arrowleft.pdf
A release/darwin/Blender.app/Contents/Resources/arrowright.pdf
A release/darwin/Blender.app/Contents/Resources/arrowup.pdf
A release/darwin/Blender.app/Contents/Resources/crossa.pdf
A release/darwin/Blender.app/Contents/Resources/crossb.pdf
A release/darwin/Blender.app/Contents/Resources/crossc.pdf
A release/darwin/Blender.app/Contents/Resources/eraser.pdf
A release/darwin/Blender.app/Contents/Resources/eyedropper.pdf
A release/darwin/Blender.app/Contents/Resources/knife.pdf
A release/darwin/Blender.app/Contents/Resources/pen.pdf
A release/darwin/Blender.app/Contents/Resources/scrollew.pdf
A release/darwin/Blender.app/Contents/Resources/scrollns.pdf
A release/darwin/Blender.app/Contents/Resources/scrollnsew.pdf
A release/darwin/Blender.app/Contents/Resources/splith.pdf
A release/darwin/Blender.app/Contents/Resources/splitv.pdf
A release/darwin/Blender.app/Contents/Resources/zoomin.pdf
A release/darwin/Blender.app/Contents/Resources/zoomout.pdf
===================================================================
diff --git a/intern/ghost/intern/GHOST_WindowCocoa.mm b/intern/ghost/intern/GHOST_WindowCocoa.mm
index dff45ba85fb..1e0952c3bd6 100644
--- a/intern/ghost/intern/GHOST_WindowCocoa.mm
+++ b/intern/ghost/intern/GHOST_WindowCocoa.mm
@@ -925,6 +925,27 @@ GHOST_TSuccess GHOST_WindowCocoa::endProgressBar()
#pragma mark Cursor handling
+static NSCursor *getImageCursor(GHOST_TStandardCursor shape, NSString *name, NSPoint hotspot)
+{
+ static NSCursor *cursors[(int)GHOST_kStandardCursorNumCursors] = {0};
+ static bool loaded[(int)GHOST_kStandardCursorNumCursors] = {false};
+
+ const int index = (int)shape;
+ if (!loaded[index]) {
+ /* Load image from file in application Resources folder. */
+ @autoreleasepool {
+ NSImage *image = [NSImage imageNamed:name];
+ if (image != NULL) {
+ cursors[index] = [[NSCursor alloc] initWithImage:image hotSpot:hotspot];
+ }
+ }
+
+ loaded[index] = true;
+ }
+
+ return cursors[index];
+}
+
NSCursor *GHOST_WindowCocoa::getStandardCursor(GHOST_TStandardCursor shape) const
{
switch (shape) {
@@ -942,10 +963,8 @@ NSCursor *GHOST_WindowCocoa::getStandardCursor(GHOST_TStandardCursor shape) cons
case GHOST_kStandardCursorCrosshair:
return [NSCursor crosshairCursor];
case GHOST_kStandardCursorUpDown:
- case GHOST_kStandardCursorHorizontalSplit:
return [NSCursor resizeUpDownCursor];
case GHOST_kStandardCursorLeftRight:
- case GHOST_kStandardCursorVerticalSplit:
return [NSCursor resizeLeftRightCursor];
case GHOST_kStandardCursorTopSide:
return [NSCursor resizeUpCursor];
@@ -963,6 +982,42 @@ NSCursor *GHOST_WindowCocoa::getStandardCursor(GHOST_TStandardCursor shape) cons
return [NSCursor pointingHandCursor];
case GHOST_kStandardCursorDefault:
return [NSCursor arrowCursor];
+ case GHOST_kStandardCursorKnife:
+ return getImageCursor(shape, @"knife.pdf", NSMakePoint(6, 24));
+ case GHOST_kStandardCursorEraser:
+ return getImageCursor(shape, @"eraser.pdf", NSMakePoint(6, 24));
+ case GHOST_kStandardCursorPencil:
+ return getImageCursor(shape, @"pen.pdf", NSMakePoint(6, 24));
+ case GHOST_kStandardCursorEyedropper:
+ return getImageCursor(shape, @"eyedropper.pdf", NSMakePoint(6, 24));
+ case GHOST_kStandardCursorZoomIn:
+ return getImageCursor(shape, @"zoomin.pdf", NSMakePoint(8, 7));
+ case GHOST_kStandardCursorZoomOut:
+ return getImageCursor(shape, @"zoomout.pdf", NSMakePoint(8, 7));
+ case GHOST_kStandardCursorNSEWScroll:
+ return getImageCursor(shape, @"scrollnsew.pdf", NSMakePoint(16, 16));
+ case GHOST_kStandardCursorNSScroll:
+ return getImageCursor(shape, @"scrollns.pdf", NSMakePoint(16, 16));
+ case GHOST_kStandardCursorEWScroll:
+ return getImageCursor(shape, @"scrollew.pdf", NSMakePoint(16, 16));
+ case GHOST_kStandardCursorUpArrow:
+ return getImageCursor(shape, @"arrowup.pdf", NSMakePoint(16, 16));
+ case GHOST_kStandardCursorDownArrow:
+ return getImageCursor(shape, @"arrowdown.pdf", NSMakePoint(16, 16));
+ case GHOST_kStandardCursorLeftArrow:
+ return getImageCursor(shape, @"arrowleft.pdf", NSMakePoint(16, 16));
+ case GHOST_kStandardCursorRightArrow:
+ return getImageCursor(shape, @"arrowright.pdf", NSMakePoint(16, 16));
+ case GHOST_kStandardCursorVerticalSplit:
+ return getImageCursor(shape, @"splitv.pdf", NSMakePoint(16, 16));
+ case GHOST_kStandardCursorHorizontalSplit:
+ return getImageCursor(shape, @"splith.pdf", NSMakePoint(16, 16));
+ case GHOST_kStandardCursorCrosshairA:
+ return getImageCursor(shape, @"crossa.pdf", NSMakePoint(16, 16));
+ case GHOST_kStandardCursorCrosshairB:
+ return getImageCursor(shape, @"crossb.pdf", NSMakePoint(16, 16));
+ case GHOST_kStandardCursorCrosshairC:
+ return getImageCursor(shape, @"crossc.pdf", NSMakePoint(16, 16));
default:
return NULL;
}
diff --git a/release/darwin/Blender.app/Contents/Resources/arrowdown.pdf b/release/darwin/Blender.app/Contents/Resources/arrowdown.pdf
new file mode 100644
index 00000000000..8a262b21010
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/arrowdown.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/arrowleft.pdf b/release/darwin/Blender.app/Contents/Resources/arrowleft.pdf
new file mode 100644
index 00000000000..1ca740b6d70
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/arrowleft.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/arrowright.pdf b/release/darwin/Blender.app/Contents/Resources/arrowright.pdf
new file mode 100644
index 00000000000..c8c657f02a0
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/arrowright.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/arrowup.pdf b/release/darwin/Blender.app/Contents/Resources/arrowup.pdf
new file mode 100644
index 00000000000..2a74e8b293e
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/arrowup.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/crossa.pdf b/release/darwin/Blender.app/Contents/Resources/crossa.pdf
new file mode 100644
index 00000000000..6419d10f276
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/crossa.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/crossb.pdf b/release/darwin/Blender.app/Contents/Resources/crossb.pdf
new file mode 100644
index 00000000000..7cbc0a8bdc0
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/crossb.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/crossc.pdf b/release/darwin/Blender.app/Contents/Resources/crossc.pdf
new file mode 100644
index 00000000000..a6bb7a4ef01
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/crossc.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/eraser.pdf b/release/darwin/Blender.app/Contents/Resources/eraser.pdf
new file mode 100644
index 00000000000..5a56be7006b
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/eraser.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/eyedropper.pdf b/release/darwin/Blender.app/Contents/Resources/eyedropper.pdf
new file mode 100644
index 00000000000..59b9fa936df
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/eyedropper.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/knife.pdf b/release/darwin/Blender.app/Contents/Resources/knife.pdf
new file mode 100644
index 00000000000..da4d48cde10
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/knife.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/pen.pdf b/release/darwin/Blender.app/Contents/Resources/pen.pdf
new file mode 100644
index 00000000000..d98f9ee9c89
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/pen.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/scrollew.pdf b/release/darwin/Blender.app/Contents/Resources/scrollew.pdf
new file mode 100644
index 00000000000..35db18830e8
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/scrollew.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/scrollns.pdf b/release/darwin/Blender.app/Contents/Resources/scrollns.pdf
new file mode 100644
index 00000000000..b4046290d50
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/scrollns.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/scrollnsew.pdf b/release/darwin/Blender.app/Contents/Resources/scrollnsew.pdf
new file mode 100644
index 00000000000..f8c666b5347
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/scrollnsew.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/splith.pdf b/release/darwin/Blender.app/Contents/Resources/splith.pdf
new file mode 100644
index 00000000000..03265fd18aa
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/splith.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/splitv.pdf b/release/darwin/Blender.app/Contents/Resources/splitv.pdf
new file mode 100644
index 00000000000..95774f9c17d
Binary files /dev/null and b/release/darwin/Blender.app/Contents/Resources/splitv.pdf differ
diff --git a/release/darwin/Blender.app/Contents/Resources/zoomin.pdf b/release/darwin/Blender.app/Contents/Resources/zoomin.pdf
new file mode 100644
index 00000000000..da20349c1aa
--- /dev/null
+++ b/release/darwin/Blender.app/Contents/Resources/zoomin.pdf
@@ -0,0 +1,674 @@
+%PDF-1.5
%����
+1 0 obj
<</Metadata 2 0 R/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 48624/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">ZoominCursor</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/">
+ <xmp:CreatorTool>Adobe Illustrator CS4</xmp:CreatorTool>
+ <xmp:CreateDate>2011-08-25T16:21:20-07:00</xmp:CreateDate>
+ <xmp:ModifyDate>2011-08-25T16:21:20-07:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2011-08-25T16:21:20-07:00</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>256</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFB
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list