You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
(23) |
Apr
(254) |
May
(252) |
Jun
(209) |
Jul
(198) |
Aug
(192) |
Sep
(207) |
Oct
(120) |
Nov
(179) |
Dec
(52) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(48) |
Feb
(69) |
Mar
(129) |
Apr
(250) |
May
(113) |
Jun
(177) |
Jul
(228) |
Aug
(155) |
Sep
(218) |
Oct
(185) |
Nov
(109) |
Dec
(88) |
2009 |
Jan
(83) |
Feb
(39) |
Mar
(70) |
Apr
(47) |
May
(48) |
Jun
(67) |
Jul
(61) |
Aug
(97) |
Sep
(221) |
Oct
(141) |
Nov
(70) |
Dec
(61) |
2010 |
Jan
(45) |
Feb
(76) |
Mar
(178) |
Apr
(106) |
May
(57) |
Jun
(32) |
Jul
(64) |
Aug
(98) |
Sep
(96) |
Oct
(19) |
Nov
(34) |
Dec
(117) |
2011 |
Jan
(55) |
Feb
(48) |
Mar
(64) |
Apr
(21) |
May
(39) |
Jun
(53) |
Jul
(99) |
Aug
(56) |
Sep
(39) |
Oct
(26) |
Nov
(19) |
Dec
(69) |
2012 |
Jan
(17) |
Feb
(40) |
Mar
(17) |
Apr
|
May
(2) |
Jun
(8) |
Jul
(2) |
Aug
(10) |
Sep
(10) |
Oct
(38) |
Nov
(48) |
Dec
(70) |
2013 |
Jan
(43) |
Feb
(47) |
Mar
(39) |
Apr
(37) |
May
(25) |
Jun
(6) |
Jul
(20) |
Aug
(49) |
Sep
(33) |
Oct
(34) |
Nov
(75) |
Dec
(6) |
2014 |
Jan
(32) |
Feb
(10) |
Mar
(17) |
Apr
|
May
|
Jun
(26) |
Jul
(5) |
Aug
|
Sep
(4) |
Oct
(23) |
Nov
(80) |
Dec
(48) |
2015 |
Jan
(80) |
Feb
(50) |
Mar
(58) |
Apr
(20) |
May
(11) |
Jun
(16) |
Jul
(24) |
Aug
(27) |
Sep
(56) |
Oct
(30) |
Nov
(16) |
Dec
(6) |
2016 |
Jan
(31) |
Feb
(14) |
Mar
(23) |
Apr
(17) |
May
(40) |
Jun
(12) |
Jul
(17) |
Aug
(9) |
Sep
(32) |
Oct
(36) |
Nov
(23) |
Dec
(9) |
2017 |
Jan
(37) |
Feb
(23) |
Mar
(65) |
Apr
(22) |
May
(6) |
Jun
(3) |
Jul
|
Aug
|
Sep
(3) |
Oct
(22) |
Nov
(63) |
Dec
(71) |
2018 |
Jan
(83) |
Feb
(21) |
Mar
(35) |
Apr
(44) |
May
(14) |
Jun
(12) |
Jul
(8) |
Aug
(18) |
Sep
(10) |
Oct
(145) |
Nov
(144) |
Dec
(76) |
2019 |
Jan
(18) |
Feb
(28) |
Mar
(5) |
Apr
(208) |
May
(291) |
Jun
(158) |
Jul
(27) |
Aug
(8) |
Sep
(10) |
Oct
(83) |
Nov
(41) |
Dec
(31) |
2020 |
Jan
(16) |
Feb
(46) |
Mar
(100) |
Apr
(78) |
May
(69) |
Jun
(71) |
Jul
(28) |
Aug
(131) |
Sep
(176) |
Oct
(89) |
Nov
(147) |
Dec
(19) |
2021 |
Jan
(19) |
Feb
(25) |
Mar
(91) |
Apr
(98) |
May
(14) |
Jun
(44) |
Jul
(8) |
Aug
(3) |
Sep
(38) |
Oct
(57) |
Nov
(97) |
Dec
(74) |
2022 |
Jan
(89) |
Feb
(47) |
Mar
(15) |
Apr
(50) |
May
(54) |
Jun
(56) |
Jul
(80) |
Aug
(12) |
Sep
(11) |
Oct
(60) |
Nov
(48) |
Dec
(4) |
2023 |
Jan
(75) |
Feb
(49) |
Mar
(84) |
Apr
(24) |
May
(13) |
Jun
(74) |
Jul
(32) |
Aug
(66) |
Sep
(50) |
Oct
(38) |
Nov
(105) |
Dec
(181) |
2024 |
Jan
(21) |
Feb
(49) |
Mar
(77) |
Apr
(84) |
May
(20) |
Jun
(71) |
Jul
(53) |
Aug
(33) |
Sep
(15) |
Oct
|
Nov
|
Dec
|
From: <ho...@us...> - 2024-07-31 09:27:38
|
Revision: 14406 http://sourceforge.net/p/skim-app/code/14406 Author: hofman Date: 2024-07-31 09:27:36 +0000 (Wed, 31 Jul 2024) Log Message: ----------- Draw outline for openHandCursor for move tool Modified Paths: -------------- trunk/NSImage_SKExtensions.m Modified: trunk/NSImage_SKExtensions.m =================================================================== --- trunk/NSImage_SKExtensions.m 2024-07-30 22:31:12 UTC (rev 14405) +++ trunk/NSImage_SKExtensions.m 2024-07-31 09:27:36 UTC (rev 14406) @@ -782,20 +782,65 @@ MAKE_IMAGE(SKImageNameToolbarMoveTool, YES, 27.0, 19.0, [[NSColor blackColor] setStroke]; + translate(-3, -6); NSBezierPath *path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(10.5, 3.0)]; - [path curveToPoint:NSMakePoint(8.0, 7.0) controlPoint1:NSMakePoint(10.5, 4.5) controlPoint2:NSMakePoint(10.5, 4.5)]; - [path curveToPoint:NSMakePoint(6.5, 11.0) controlPoint1:NSMakePoint(5.5, 9.5) controlPoint2:NSMakePoint(5.5, 10.0)]; - [path curveToPoint:NSMakePoint(10.0, 9.5) controlPoint1:NSMakePoint(7.5, 12.0) controlPoint2:NSMakePoint(7.5, 12.0)]; - [path curveToPoint:NSMakePoint(9.5, 15.5) controlPoint1:NSMakePoint(7.5, 14.0) controlPoint2:NSMakePoint(7.0, 15.5)]; - [path curveToPoint:NSMakePoint(11.5, 11.5) controlPoint1:NSMakePoint(10.5, 15.5) controlPoint2:NSMakePoint(10.5, 15.5)]; - [path appendBezierPathWithArcWithCenter:NSMakePoint(13.0, 15.5) radius:1.5 startAngle:180.0 endAngle:0.0 clockwise:YES]; - [path moveToPoint:NSMakePoint(14.5, 11.0)]; - [path appendBezierPathWithArcWithCenter:NSMakePoint(16.0, 14.5) radius:1.5 startAngle:180.0 endAngle:0.0 clockwise:YES]; - [path lineToPoint:NSMakePoint(17.5, 12.5)]; - [path moveToPoint:NSMakePoint(17.5, 10.5)]; - [path appendBezierPathWithArcWithCenter:NSMakePoint(19.0, 12.5) radius:1.5 startAngle:180.0 endAngle:0.0 clockwise:YES]; - [path curveToPoint:NSMakePoint(17.5, 3.0) controlPoint1:NSMakePoint(20.5, 8.5) controlPoint2:NSMakePoint(17.5, 7.0)]; + [path moveToPoint:NSMakePoint(12.5559, 15.4258)]; + [path curveToPoint:NSMakePoint(12.1496, 16.9777) controlPoint1:NSMakePoint(12.4578, 15.8008) controlPoint2:NSMakePoint(12.3598, 16.2727)]; + [path curveToPoint:NSMakePoint(11.6797, 18.2109) controlPoint1:NSMakePoint(11.9828, 17.5348) controlPoint2:NSMakePoint(11.8078, 17.8367)]; + [path curveToPoint:NSMakePoint(11.1836, 19.3918) controlPoint1:NSMakePoint(11.5246, 18.6656) controlPoint2:NSMakePoint(11.3766, 18.9316)]; + [path curveToPoint:NSMakePoint(10.7266, 20.8316) controlPoint1:NSMakePoint(11.0445, 19.7207) controlPoint2:NSMakePoint(10.8195, 20.4398)]; + [path curveToPoint:NSMakePoint(10.9707, 22.0379) controlPoint1:NSMakePoint(10.6078, 21.3406) controlPoint2:NSMakePoint(10.7598, 21.7559)]; + [path curveToPoint:NSMakePoint(12.3277, 22.3887) controlPoint1:NSMakePoint(11.2238, 22.377) controlPoint2:NSMakePoint(11.9328, 22.5277)]; + [path curveToPoint:NSMakePoint(13.2438, 21.6008) controlPoint1:NSMakePoint(12.6988, 22.259) controlPoint2:NSMakePoint(13.0719, 21.877)]; + [path curveToPoint:NSMakePoint(13.9605, 20.059) controlPoint1:NSMakePoint(13.5316, 21.1406) controlPoint2:NSMakePoint(13.6008, 20.9688)]; + [path curveToPoint:NSMakePoint(14.5719, 17.8277) controlPoint1:NSMakePoint(14.3535, 19.0668) controlPoint2:NSMakePoint(14.5246, 18.1406)]; + [path lineToPoint:NSMakePoint(14.6566, 17.3758)]; + [path curveToPoint:NSMakePoint(14.6129, 18.5379) controlPoint1:NSMakePoint(14.6559, 17.4156) controlPoint2:NSMakePoint(14.6137, 18.4977)]; + [path curveToPoint:NSMakePoint(14.5746, 21.477) controlPoint1:NSMakePoint(14.5777, 19.5668) controlPoint2:NSMakePoint(14.5527, 20.3609)]; + [path curveToPoint:NSMakePoint(14.6586, 22.1918) controlPoint1:NSMakePoint(14.5766, 21.6027) controlPoint2:NSMakePoint(14.6387, 22.0637)]; + [path curveToPoint:NSMakePoint(15.3316, 23.1707) controlPoint1:NSMakePoint(14.7367, 22.6918) controlPoint2:NSMakePoint(14.9637, 22.9918)]; + [path curveToPoint:NSMakePoint(16.7328, 23.1879) controlPoint1:NSMakePoint(15.7438, 23.3719) controlPoint2:NSMakePoint(16.2578, 23.3859)]; + [path curveToPoint:NSMakePoint(17.4195, 22.1656) controlPoint1:NSMakePoint(17.1559, 23.0148) controlPoint2:NSMakePoint(17.3586, 22.6379)]; + [path curveToPoint:NSMakePoint(17.5129, 21.059) controlPoint1:NSMakePoint(17.4336, 22.0566) controlPoint2:NSMakePoint(17.5137, 21.1789)]; + [path curveToPoint:NSMakePoint(17.5277, 18.8848) controlPoint1:NSMakePoint(17.4996, 20.034) controlPoint2:NSMakePoint(17.5188, 19.418)]; + [path curveToPoint:NSMakePoint(17.5445, 17.4156) controlPoint1:NSMakePoint(17.5316, 18.6539) controlPoint2:NSMakePoint(17.5309, 17.2598)]; + [path curveToPoint:NSMakePoint(17.8887, 21.3578) controlPoint1:NSMakePoint(17.6059, 18.0719) controlPoint2:NSMakePoint(17.6387, 20.6047)]; + [path curveToPoint:NSMakePoint(18.6828, 22.2867) controlPoint1:NSMakePoint(18.0328, 21.7906) controlPoint2:NSMakePoint(18.2938, 22.1039)]; + [path curveToPoint:NSMakePoint(20.0867, 22.0438) controlPoint1:NSMakePoint(19.1137, 22.4898) controlPoint2:NSMakePoint(19.7957, 22.3566)]; + [path curveToPoint:NSMakePoint(20.5688, 20.8906) controlPoint1:NSMakePoint(20.3719, 21.7387) controlPoint2:NSMakePoint(20.5328, 21.352)]; + [path curveToPoint:NSMakePoint(20.5488, 19.6457) controlPoint1:NSMakePoint(20.6008, 20.4859) controlPoint2:NSMakePoint(20.5496, 19.9938)]; + [path curveToPoint:NSMakePoint(20.5117, 17.5246) controlPoint1:NSMakePoint(20.5488, 18.7789) controlPoint2:NSMakePoint(20.5277, 18.3219)]; + [path curveToPoint:NSMakePoint(20.5348, 17.343) controlPoint1:NSMakePoint(20.5105, 17.4867) controlPoint2:NSMakePoint(20.4969, 17.227)]; + [path curveToPoint:NSMakePoint(20.8008, 18.0879) controlPoint1:NSMakePoint(20.6285, 17.6227) controlPoint2:NSMakePoint(20.7227, 17.8848)]; + [path curveToPoint:NSMakePoint(21.1598, 18.9469) controlPoint1:NSMakePoint(20.8496, 18.2129) controlPoint2:NSMakePoint(21.0418, 18.702)]; + [path curveToPoint:NSMakePoint(21.5746, 19.6348) controlPoint1:NSMakePoint(21.2738, 19.1809) controlPoint2:NSMakePoint(21.3707, 19.3156)]; + [path curveToPoint:NSMakePoint(22.2426, 20.1957) controlPoint1:NSMakePoint(21.7746, 19.9477) controlPoint2:NSMakePoint(21.9898, 20.0828)]; + [path curveToPoint:NSMakePoint(23.5438, 19.6047) controlPoint1:NSMakePoint(22.7828, 20.4309) controlPoint2:NSMakePoint(23.3516, 20.084)]; + [path curveToPoint:NSMakePoint(23.5156, 18.4996) controlPoint1:NSMakePoint(23.6297, 19.3898) controlPoint2:NSMakePoint(23.5527, 18.8918)]; + [path curveToPoint:NSMakePoint(23.1637, 16.852) controlPoint1:NSMakePoint(23.4547, 17.8527) controlPoint2:NSMakePoint(23.2617, 17.1938)]; + [path curveToPoint:NSMakePoint(22.8238, 15.2508) controlPoint1:NSMakePoint(23.0355, 16.4047) controlPoint2:NSMakePoint(22.8898, 15.6168)]; + [path curveToPoint:NSMakePoint(22.4648, 13.4309) controlPoint1:NSMakePoint(22.7516, 14.8566) controlPoint2:NSMakePoint(22.5898, 13.8688)]; + [path curveToPoint:NSMakePoint(21.8129, 12.0469) controlPoint1:NSMakePoint(22.3785, 13.1297) controlPoint2:NSMakePoint(22.0938, 12.4527)]; + [path curveToPoint:NSMakePoint(20.6207, 10.2348) controlPoint1:NSMakePoint(21.8129, 12.0469) controlPoint2:NSMakePoint(20.7387, 10.7969)]; + [path curveToPoint:NSMakePoint(20.5195, 9.26992) controlPoint1:NSMakePoint(20.5035, 9.67188) controlPoint2:NSMakePoint(20.5426, 9.66797)]; + [path curveToPoint:NSMakePoint(20.6406, 8.34688) controlPoint1:NSMakePoint(20.4957, 8.8707) controlPoint2:NSMakePoint(20.4957, 8.8707)]; + [path curveToPoint:NSMakePoint(19.4066, 8.31289) controlPoint1:NSMakePoint(20.6406, 8.34688) controlPoint2:NSMakePoint(19.8387, 8.24297)]; + [path curveToPoint:NSMakePoint(18.4066, 9.39063) controlPoint1:NSMakePoint(19.0156, 8.37461) controlPoint2:NSMakePoint(18.5316, 9.15391)]; + [path curveToPoint:NSMakePoint(17.7246, 9.41367) controlPoint1:NSMakePoint(18.2348, 9.71875) controlPoint2:NSMakePoint(17.8676, 9.65586)]; + [path curveToPoint:NSMakePoint(16.6738, 8.30078) controlPoint1:NSMakePoint(17.4996, 9.03086) controlPoint2:NSMakePoint(17.0156, 8.34375)]; + [path curveToPoint:NSMakePoint(13.5348, 8.28086) controlPoint1:NSMakePoint(16.0059, 8.2168) controlPoint2:NSMakePoint(14.6195, 8.2707)]; + [path curveToPoint:NSMakePoint(13.3078, 9.63867) controlPoint1:NSMakePoint(13.5348, 8.28086) controlPoint2:NSMakePoint(13.7195, 9.2918)]; + [path curveToPoint:NSMakePoint(12.1637, 10.6988) controlPoint1:NSMakePoint(13.0027, 9.89883) controlPoint2:NSMakePoint(12.4777, 10.4227)]; + [path lineToPoint:NSMakePoint(11.3316, 11.6199)]; + [path curveToPoint:NSMakePoint(10.0887, 13.6047) controlPoint1:NSMakePoint(11.0477, 11.9797) controlPoint2:NSMakePoint(10.7027, 12.7129)]; + [path curveToPoint:NSMakePoint(8.80469, 15.184) controlPoint1:NSMakePoint(9.74063, 14.109) controlPoint2:NSMakePoint(9.06172, 14.6898)]; + [path curveToPoint:NSMakePoint(8.61484, 16.509) controlPoint1:NSMakePoint(8.58164, 15.609) controlPoint2:NSMakePoint(8.47383, 16.1379)]; + [path curveToPoint:NSMakePoint(9.97656, 17.3406) controlPoint1:NSMakePoint(8.83984, 17.1027) controlPoint2:NSMakePoint(9.28984, 17.4059)]; + [path curveToPoint:NSMakePoint(11.2148, 16.8039) controlPoint1:NSMakePoint(10.4957, 17.2906) controlPoint2:NSMakePoint(10.8246, 17.1348)]; + [path curveToPoint:NSMakePoint(11.9648, 16.0559) controlPoint1:NSMakePoint(11.4398, 16.6137) controlPoint2:NSMakePoint(11.7879, 16.2699)]; + [path curveToPoint:NSMakePoint(12.3418, 15.5469) controlPoint1:NSMakePoint(12.1277, 15.8609) controlPoint2:NSMakePoint(12.1676, 15.7797)]; + [path curveToPoint:NSMakePoint(12.5559, 15.4258) controlPoint1:NSMakePoint(12.5719, 15.2398) controlPoint2:NSMakePoint(12.6438, 15.0879)]; + [path closePath]; [path setLineJoinStyle:NSRoundLineJoinStyle]; [path stroke]; ); @@ -1201,22 +1246,66 @@ ); MAKE_IMAGE(SKImageNameTouchBarMoveTool, YES, 26.0, 30.0, - translate(-0.5, 5.5); + translate(-3.5, -0.5); [[NSColor blackColor] setStroke]; NSBezierPath *path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(10.5, 3.0)]; - [path curveToPoint:NSMakePoint(8.0, 7.0) controlPoint1:NSMakePoint(10.5, 4.5) controlPoint2:NSMakePoint(10.5, 4.5)]; - [path curveToPoint:NSMakePoint(6.5, 11.0) controlPoint1:NSMakePoint(5.5, 9.5) controlPoint2:NSMakePoint(5.5, 10.0)]; - [path curveToPoint:NSMakePoint(10.0, 9.5) controlPoint1:NSMakePoint(7.5, 12.0) controlPoint2:NSMakePoint(7.5, 12.0)]; - [path curveToPoint:NSMakePoint(9.5, 15.5) controlPoint1:NSMakePoint(7.5, 14.0) controlPoint2:NSMakePoint(7.0, 15.5)]; - [path curveToPoint:NSMakePoint(11.5, 11.5) controlPoint1:NSMakePoint(10.5, 15.5) controlPoint2:NSMakePoint(10.5, 15.5)]; - [path appendBezierPathWithArcWithCenter:NSMakePoint(13.0, 15.5) radius:1.5 startAngle:180.0 endAngle:0.0 clockwise:YES]; - [path moveToPoint:NSMakePoint(14.5, 11.0)]; - [path appendBezierPathWithArcWithCenter:NSMakePoint(16.0, 14.5) radius:1.5 startAngle:180.0 endAngle:0.0 clockwise:YES]; - [path lineToPoint:NSMakePoint(17.5, 12.5)]; - [path moveToPoint:NSMakePoint(17.5, 10.5)]; - [path appendBezierPathWithArcWithCenter:NSMakePoint(19.0, 12.5) radius:1.5 startAngle:180.0 endAngle:0.0 clockwise:YES]; - [path curveToPoint:NSMakePoint(17.5, 3.0) controlPoint1:NSMakePoint(20.5, 8.5) controlPoint2:NSMakePoint(17.5, 7.0)]; + [path moveToPoint:NSMakePoint(12.5559, 15.4258)]; + [path curveToPoint:NSMakePoint(12.1496, 16.9777) controlPoint1:NSMakePoint(12.4578, 15.8008) controlPoint2:NSMakePoint(12.3598, 16.2727)]; + [path curveToPoint:NSMakePoint(11.6797, 18.2109) controlPoint1:NSMakePoint(11.9828, 17.5348) controlPoint2:NSMakePoint(11.8078, 17.8367)]; + [path curveToPoint:NSMakePoint(11.1836, 19.3918) controlPoint1:NSMakePoint(11.5246, 18.6656) controlPoint2:NSMakePoint(11.3766, 18.9316)]; + [path curveToPoint:NSMakePoint(10.7266, 20.8316) controlPoint1:NSMakePoint(11.0445, 19.7207) controlPoint2:NSMakePoint(10.8195, 20.4398)]; + [path curveToPoint:NSMakePoint(10.9707, 22.0379) controlPoint1:NSMakePoint(10.6078, 21.3406) controlPoint2:NSMakePoint(10.7598, 21.7559)]; + [path curveToPoint:NSMakePoint(12.3277, 22.3887) controlPoint1:NSMakePoint(11.2238, 22.377) controlPoint2:NSMakePoint(11.9328, 22.5277)]; + [path curveToPoint:NSMakePoint(13.2438, 21.6008) controlPoint1:NSMakePoint(12.6988, 22.259) controlPoint2:NSMakePoint(13.0719, 21.877)]; + [path curveToPoint:NSMakePoint(13.9605, 20.059) controlPoint1:NSMakePoint(13.5316, 21.1406) controlPoint2:NSMakePoint(13.6008, 20.9688)]; + [path curveToPoint:NSMakePoint(14.5719, 17.8277) controlPoint1:NSMakePoint(14.3535, 19.0668) controlPoint2:NSMakePoint(14.5246, 18.1406)]; + [path lineToPoint:NSMakePoint(14.6566, 17.3758)]; + [path curveToPoint:NSMakePoint(14.6129, 18.5379) controlPoint1:NSMakePoint(14.6559, 17.4156) controlPoint2:NSMakePoint(14.6137, 18.4977)]; + [path curveToPoint:NSMakePoint(14.5746, 21.477) controlPoint1:NSMakePoint(14.5777, 19.5668) controlPoint2:NSMakePoint(14.5527, 20.3609)]; + [path curveToPoint:NSMakePoint(14.6586, 22.1918) controlPoint1:NSMakePoint(14.5766, 21.6027) controlPoint2:NSMakePoint(14.6387, 22.0637)]; + [path curveToPoint:NSMakePoint(15.3316, 23.1707) controlPoint1:NSMakePoint(14.7367, 22.6918) controlPoint2:NSMakePoint(14.9637, 22.9918)]; + [path curveToPoint:NSMakePoint(16.7328, 23.1879) controlPoint1:NSMakePoint(15.7438, 23.3719) controlPoint2:NSMakePoint(16.2578, 23.3859)]; + [path curveToPoint:NSMakePoint(17.4195, 22.1656) controlPoint1:NSMakePoint(17.1559, 23.0148) controlPoint2:NSMakePoint(17.3586, 22.6379)]; + [path curveToPoint:NSMakePoint(17.5129, 21.059) controlPoint1:NSMakePoint(17.4336, 22.0566) controlPoint2:NSMakePoint(17.5137, 21.1789)]; + [path curveToPoint:NSMakePoint(17.5277, 18.8848) controlPoint1:NSMakePoint(17.4996, 20.034) controlPoint2:NSMakePoint(17.5188, 19.418)]; + [path curveToPoint:NSMakePoint(17.5445, 17.4156) controlPoint1:NSMakePoint(17.5316, 18.6539) controlPoint2:NSMakePoint(17.5309, 17.2598)]; + [path curveToPoint:NSMakePoint(17.8887, 21.3578) controlPoint1:NSMakePoint(17.6059, 18.0719) controlPoint2:NSMakePoint(17.6387, 20.6047)]; + [path curveToPoint:NSMakePoint(18.6828, 22.2867) controlPoint1:NSMakePoint(18.0328, 21.7906) controlPoint2:NSMakePoint(18.2938, 22.1039)]; + [path curveToPoint:NSMakePoint(20.0867, 22.0438) controlPoint1:NSMakePoint(19.1137, 22.4898) controlPoint2:NSMakePoint(19.7957, 22.3566)]; + [path curveToPoint:NSMakePoint(20.5688, 20.8906) controlPoint1:NSMakePoint(20.3719, 21.7387) controlPoint2:NSMakePoint(20.5328, 21.352)]; + [path curveToPoint:NSMakePoint(20.5488, 19.6457) controlPoint1:NSMakePoint(20.6008, 20.4859) controlPoint2:NSMakePoint(20.5496, 19.9938)]; + [path curveToPoint:NSMakePoint(20.5117, 17.5246) controlPoint1:NSMakePoint(20.5488, 18.7789) controlPoint2:NSMakePoint(20.5277, 18.3219)]; + [path curveToPoint:NSMakePoint(20.5348, 17.343) controlPoint1:NSMakePoint(20.5105, 17.4867) controlPoint2:NSMakePoint(20.4969, 17.227)]; + [path curveToPoint:NSMakePoint(20.8008, 18.0879) controlPoint1:NSMakePoint(20.6285, 17.6227) controlPoint2:NSMakePoint(20.7227, 17.8848)]; + [path curveToPoint:NSMakePoint(21.1598, 18.9469) controlPoint1:NSMakePoint(20.8496, 18.2129) controlPoint2:NSMakePoint(21.0418, 18.702)]; + [path curveToPoint:NSMakePoint(21.5746, 19.6348) controlPoint1:NSMakePoint(21.2738, 19.1809) controlPoint2:NSMakePoint(21.3707, 19.3156)]; + [path curveToPoint:NSMakePoint(22.2426, 20.1957) controlPoint1:NSMakePoint(21.7746, 19.9477) controlPoint2:NSMakePoint(21.9898, 20.0828)]; + [path curveToPoint:NSMakePoint(23.5438, 19.6047) controlPoint1:NSMakePoint(22.7828, 20.4309) controlPoint2:NSMakePoint(23.3516, 20.084)]; + [path curveToPoint:NSMakePoint(23.5156, 18.4996) controlPoint1:NSMakePoint(23.6297, 19.3898) controlPoint2:NSMakePoint(23.5527, 18.8918)]; + [path curveToPoint:NSMakePoint(23.1637, 16.852) controlPoint1:NSMakePoint(23.4547, 17.8527) controlPoint2:NSMakePoint(23.2617, 17.1938)]; + [path curveToPoint:NSMakePoint(22.8238, 15.2508) controlPoint1:NSMakePoint(23.0355, 16.4047) controlPoint2:NSMakePoint(22.8898, 15.6168)]; + [path curveToPoint:NSMakePoint(22.4648, 13.4309) controlPoint1:NSMakePoint(22.7516, 14.8566) controlPoint2:NSMakePoint(22.5898, 13.8688)]; + [path curveToPoint:NSMakePoint(21.8129, 12.0469) controlPoint1:NSMakePoint(22.3785, 13.1297) controlPoint2:NSMakePoint(22.0938, 12.4527)]; + [path curveToPoint:NSMakePoint(20.6207, 10.2348) controlPoint1:NSMakePoint(21.8129, 12.0469) controlPoint2:NSMakePoint(20.7387, 10.7969)]; + [path curveToPoint:NSMakePoint(20.5195, 9.26992) controlPoint1:NSMakePoint(20.5035, 9.67188) controlPoint2:NSMakePoint(20.5426, 9.66797)]; + [path curveToPoint:NSMakePoint(20.6406, 8.34688) controlPoint1:NSMakePoint(20.4957, 8.8707) controlPoint2:NSMakePoint(20.4957, 8.8707)]; + [path curveToPoint:NSMakePoint(19.4066, 8.31289) controlPoint1:NSMakePoint(20.6406, 8.34688) controlPoint2:NSMakePoint(19.8387, 8.24297)]; + [path curveToPoint:NSMakePoint(18.4066, 9.39063) controlPoint1:NSMakePoint(19.0156, 8.37461) controlPoint2:NSMakePoint(18.5316, 9.15391)]; + [path curveToPoint:NSMakePoint(17.7246, 9.41367) controlPoint1:NSMakePoint(18.2348, 9.71875) controlPoint2:NSMakePoint(17.8676, 9.65586)]; + [path curveToPoint:NSMakePoint(16.6738, 8.30078) controlPoint1:NSMakePoint(17.4996, 9.03086) controlPoint2:NSMakePoint(17.0156, 8.34375)]; + [path curveToPoint:NSMakePoint(13.5348, 8.28086) controlPoint1:NSMakePoint(16.0059, 8.2168) controlPoint2:NSMakePoint(14.6195, 8.2707)]; + [path curveToPoint:NSMakePoint(13.3078, 9.63867) controlPoint1:NSMakePoint(13.5348, 8.28086) controlPoint2:NSMakePoint(13.7195, 9.2918)]; + [path curveToPoint:NSMakePoint(12.1637, 10.6988) controlPoint1:NSMakePoint(13.0027, 9.89883) controlPoint2:NSMakePoint(12.4777, 10.4227)]; + [path lineToPoint:NSMakePoint(11.3316, 11.6199)]; + [path curveToPoint:NSMakePoint(10.0887, 13.6047) controlPoint1:NSMakePoint(11.0477, 11.9797) controlPoint2:NSMakePoint(10.7027, 12.7129)]; + [path curveToPoint:NSMakePoint(8.80469, 15.184) controlPoint1:NSMakePoint(9.74063, 14.109) controlPoint2:NSMakePoint(9.06172, 14.6898)]; + [path curveToPoint:NSMakePoint(8.61484, 16.509) controlPoint1:NSMakePoint(8.58164, 15.609) controlPoint2:NSMakePoint(8.47383, 16.1379)]; + [path curveToPoint:NSMakePoint(9.97656, 17.3406) controlPoint1:NSMakePoint(8.83984, 17.1027) controlPoint2:NSMakePoint(9.28984, 17.4059)]; + [path curveToPoint:NSMakePoint(11.2148, 16.8039) controlPoint1:NSMakePoint(10.4957, 17.2906) controlPoint2:NSMakePoint(10.8246, 17.1348)]; + [path curveToPoint:NSMakePoint(11.9648, 16.0559) controlPoint1:NSMakePoint(11.4398, 16.6137) controlPoint2:NSMakePoint(11.7879, 16.2699)]; + [path curveToPoint:NSMakePoint(12.3418, 15.5469) controlPoint1:NSMakePoint(12.1277, 15.8609) controlPoint2:NSMakePoint(12.1676, 15.7797)]; + [path curveToPoint:NSMakePoint(12.5559, 15.4258) controlPoint1:NSMakePoint(12.5719, 15.2398) controlPoint2:NSMakePoint(12.6438, 15.0879)]; + [path closePath]; [path setLineJoinStyle:NSRoundLineJoinStyle]; [path stroke]; ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-30 22:31:15
|
Revision: 14405 http://sourceforge.net/p/skim-app/code/14405 Author: hofman Date: 2024-07-30 22:31:12 +0000 (Tue, 30 Jul 2024) Log Message: ----------- no need to fill with lines Modified Paths: -------------- trunk/NSCursor_SKExtensions.m Modified: trunk/NSCursor_SKExtensions.m =================================================================== --- trunk/NSCursor_SKExtensions.m 2024-07-30 17:05:34 UTC (rev 14404) +++ trunk/NSCursor_SKExtensions.m 2024-07-30 22:31:12 UTC (rev 14405) @@ -598,6 +598,13 @@ [path curveToPoint:NSMakePoint(12.3418, 15.5469) controlPoint1:NSMakePoint(12.1277, 15.8609) controlPoint2:NSMakePoint(12.1676, 15.7797)]; [path curveToPoint:NSMakePoint(12.5559, 15.4258) controlPoint1:NSMakePoint(12.5719, 15.2398) controlPoint2:NSMakePoint(12.6438, 15.0879)]; [path closePath]; + [path setLineJoinStyle:NSRoundLineJoinStyle]; + [path setLineCapStyle:NSRoundLineCapStyle]; + [NSGraphicsContext saveGraphicsState]; + [fillColor setFill]; + [NSShadow setShadowWithWhite:0.0 alpha:0.5 blurRadius:1.0 yOffset:-1.4]; + [path fill]; + [NSGraphicsContext restoreGraphicsState]; [path moveToPoint:NSMakePoint(19.5664, 11.2656)]; [path lineToPoint:NSMakePoint(19.5664, 14.7246)]; [path moveToPoint:NSMakePoint(17.5508, 11.2539)]; @@ -604,13 +611,6 @@ [path lineToPoint:NSMakePoint(17.5348, 14.727)]; [path moveToPoint:NSMakePoint(15.5547, 14.6953)]; [path lineToPoint:NSMakePoint(15.5758, 11.2691)]; - [path setLineJoinStyle:NSLineJoinStyleRound]; - [path setLineCapStyle:NSLineCapStyleRound]; - [NSGraphicsContext saveGraphicsState]; - [fillColor setFill]; - [NSShadow setShadowWithWhite:0.0 alpha:0.5 blurRadius:1.0 yOffset:-1.4]; - [path fill]; - [NSGraphicsContext restoreGraphicsState]; [strokeColor setStroke]; [path setLineWidth:0.75]; [path stroke]; @@ -658,6 +658,13 @@ [path curveToPoint:NSMakePoint(11.741, 17.9219) controlPoint1:NSMakePoint(12.0121, 16.757) controlPoint2:NSMakePoint(11.7203, 17.3391)]; [path curveToPoint:NSMakePoint(12.573, 18.9641) controlPoint1:NSMakePoint(11.7492, 18.143) controlPoint2:NSMakePoint(11.8441, 18.693)]; [path closePath]; + [path setLineJoinStyle:NSRoundLineJoinStyle]; + [path setLineCapStyle:NSRoundLineCapStyle]; + [NSGraphicsContext saveGraphicsState]; + [fillColor setFill]; + [NSShadow setShadowWithWhite:0.0 alpha:0.5 blurRadius:1.0 yOffset:-1.4]; + [path fill]; + [NSGraphicsContext restoreGraphicsState]; [path moveToPoint:NSMakePoint(19.5664, 11.2656)]; [path lineToPoint:NSMakePoint(19.5664, 14.7246)]; [path moveToPoint:NSMakePoint(17.5508, 11.2539)]; @@ -664,13 +671,6 @@ [path lineToPoint:NSMakePoint(17.5348, 14.727)]; [path moveToPoint:NSMakePoint(15.5547, 14.6953)]; [path lineToPoint:NSMakePoint(15.5758, 11.2691)]; - [path setLineJoinStyle:NSLineJoinStyleRound]; - [path setLineCapStyle:NSLineCapStyleRound]; - [NSGraphicsContext saveGraphicsState]; - [fillColor setFill]; - [NSShadow setShadowWithWhite:0.0 alpha:0.5 blurRadius:1.0 yOffset:-1.4]; - [path fill]; - [NSGraphicsContext restoreGraphicsState]; [strokeColor setStroke]; [path setLineWidth:0.75]; [path stroke]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-30 17:05:35
|
Revision: 14404 http://sourceforge.net/p/skim-app/code/14404 Author: hofman Date: 2024-07-30 17:05:34 +0000 (Tue, 30 Jul 2024) Log Message: ----------- add outline to bar in cursor images Modified Paths: -------------- trunk/NSCursor_SKExtensions.m Modified: trunk/NSCursor_SKExtensions.m =================================================================== --- trunk/NSCursor_SKExtensions.m 2024-07-30 09:24:02 UTC (rev 14403) +++ trunk/NSCursor_SKExtensions.m 2024-07-30 17:05:34 UTC (rev 14404) @@ -321,11 +321,13 @@ hotspot = NSMakePoint(16.0, 16.0); image = [[NSImage alloc] initPDFWithSize:NSMakeSize(32.0, 32.0) drawingHandler:^(NSRect dstRect){ - [cursorFill setFill]; + [cursorOutline setFill]; [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; + [NSBezierPath fillRect:NSMakeRect(1.0, 13.0, 30.0, 6.0)]; + [NSGraphicsContext restoreGraphicsState]; + [cursorFill setFill]; [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; - [NSGraphicsContext restoreGraphicsState]; drawOpenHandCursor([cursorColors count] ? cursorOutline : cursorFill, [cursorColors count] ? cursorFill : cursorOutline); }]; cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; @@ -332,11 +334,13 @@ [customCursors setObject:cursor forKey:@"openHandBarCursor"]; image = [[NSImage alloc] initPDFWithSize:NSMakeSize(32.0, 32.0) drawingHandler:^(NSRect dstRect){ - [cursorFill setFill]; + [cursorOutline setFill]; [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; + [NSBezierPath fillRect:NSMakeRect(1.0, 13.0, 30.0, 6.0)]; + [NSGraphicsContext restoreGraphicsState]; + [cursorFill setFill]; [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; - [NSGraphicsContext restoreGraphicsState]; drawClosedHandCursor([cursorColors count] ? cursorOutline : cursorFill, [cursorColors count] ? cursorFill : cursorOutline); }]; cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-30 09:24:04
|
Revision: 14403 http://sourceforge.net/p/skim-app/code/14403 Author: hofman Date: 2024-07-30 09:24:02 +0000 (Tue, 30 Jul 2024) Log Message: ----------- set line width to 7.5 Modified Paths: -------------- trunk/NSCursor_SKExtensions.m Modified: trunk/NSCursor_SKExtensions.m =================================================================== --- trunk/NSCursor_SKExtensions.m 2024-07-28 17:20:53 UTC (rev 14402) +++ trunk/NSCursor_SKExtensions.m 2024-07-30 09:24:02 UTC (rev 14403) @@ -56,6 +56,9 @@ #pragma mark - +static void drawOpenHandCursor(NSColor *strokeColor, NSColor *fillColor); +static void drawClosedHandCursor(NSColor *strokeColor, NSColor *fillColor); + @implementation NSCursor (SKExtensions) static void (*original_set)(id, SEL) = NULL; @@ -315,52 +318,30 @@ cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; [customCursors setObject:cursor forKey:@"cameraCursor"]; - NSSize size = [[[NSCursor openHandCursor] image] size]; + hotspot = NSMakePoint(16.0, 16.0); - if (NSEqualSizes(size, NSMakeSize(32.0, 32.0))) { - - image = [[NSImage alloc] initPDFWithSize:size drawingHandler:^(NSRect dstRect){ - [cursorFill setFill]; - [NSGraphicsContext saveGraphicsState]; - [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; - [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; - [NSGraphicsContext restoreGraphicsState]; - [[[NSCursor openHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, 32.0, 32.0) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; - }]; - cursor = [[NSCursor alloc] initWithImage:image hotSpot:[[self openHandCursor] hotSpot]]; - [customCursors setObject:cursor forKey:@"openHandBarCursor"]; - - image = [[NSImage alloc] initPDFWithSize:size drawingHandler:^(NSRect dstRect){ - [cursorFill setFill]; - [NSGraphicsContext saveGraphicsState]; - [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; - [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; - [NSGraphicsContext restoreGraphicsState]; - [[[NSCursor closedHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, 32.0, 32.0) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; - }]; - cursor = [[NSCursor alloc] initWithImage:image hotSpot:[[self closedHandCursor] hotSpot]]; - [customCursors setObject:cursor forKey:@"closedHandBarCursor"]; - - } else { - - image = [[NSImage alloc] initPDFWithSize:size drawingHandler:^(NSRect dstRect){ - [cursorFill setFill]; - [NSBezierPath fillRect:NSMakeRect(0.0, 9.0 / 16.0 * size.height, size.width, 3.0 / 16.0 * size.height)]; - [[[NSCursor openHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, size.width, size.height) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; - }]; - cursor = [[NSCursor alloc] initWithImage:image hotSpot:[[self openHandCursor] hotSpot]]; - [customCursors setObject:cursor forKey:@"openHandBarCursor"]; - - image = [[NSImage alloc] initPDFWithSize:size drawingHandler:^(NSRect dstRect){ - [cursorFill setFill]; - [NSBezierPath fillRect:NSMakeRect(0.0, 6.0 / 16.0 * size.height, size.width, 3.0 / 16.0 * size.height)]; - [[[NSCursor closedHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, size.width, size.height) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; - }]; - cursor = [[NSCursor alloc] initWithImage:image hotSpot:[[self closedHandCursor] hotSpot]]; - [customCursors setObject:cursor forKey:@"closedHandBarCursor"]; - - } + image = [[NSImage alloc] initPDFWithSize:NSMakeSize(32.0, 32.0) drawingHandler:^(NSRect dstRect){ + [cursorFill setFill]; + [NSGraphicsContext saveGraphicsState]; + [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; + [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; + [NSGraphicsContext restoreGraphicsState]; + drawOpenHandCursor([cursorColors count] ? cursorOutline : cursorFill, [cursorColors count] ? cursorFill : cursorOutline); + }]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"openHandBarCursor"]; + image = [[NSImage alloc] initPDFWithSize:NSMakeSize(32.0, 32.0) drawingHandler:^(NSRect dstRect){ + [cursorFill setFill]; + [NSGraphicsContext saveGraphicsState]; + [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; + [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; + [NSGraphicsContext restoreGraphicsState]; + drawClosedHandCursor([cursorColors count] ? cursorOutline : cursorFill, [cursorColors count] ? cursorFill : cursorOutline); + }]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"closedHandBarCursor"]; + hotspot = [[self arrowCursor] hotSpot]; image = [NSImage cursorTextNoteImageWithOutlineColor:cursorOutline fillColor:cursorFill]; @@ -554,3 +535,139 @@ @end +static void drawOpenHandCursor(NSColor *strokeColor, NSColor *fillColor) { + NSBezierPath *path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(12.5559, 15.4258)]; + [path curveToPoint:NSMakePoint(12.1496, 16.9777) controlPoint1:NSMakePoint(12.4578, 15.8008) controlPoint2:NSMakePoint(12.3598, 16.2727)]; + [path curveToPoint:NSMakePoint(11.6797, 18.2109) controlPoint1:NSMakePoint(11.9828, 17.5348) controlPoint2:NSMakePoint(11.8078, 17.8367)]; + [path curveToPoint:NSMakePoint(11.1836, 19.3918) controlPoint1:NSMakePoint(11.5246, 18.6656) controlPoint2:NSMakePoint(11.3766, 18.9316)]; + [path curveToPoint:NSMakePoint(10.7266, 20.8316) controlPoint1:NSMakePoint(11.0445, 19.7207) controlPoint2:NSMakePoint(10.8195, 20.4398)]; + [path curveToPoint:NSMakePoint(10.9707, 22.0379) controlPoint1:NSMakePoint(10.6078, 21.3406) controlPoint2:NSMakePoint(10.7598, 21.7559)]; + [path curveToPoint:NSMakePoint(12.3277, 22.3887) controlPoint1:NSMakePoint(11.2238, 22.377) controlPoint2:NSMakePoint(11.9328, 22.5277)]; + [path curveToPoint:NSMakePoint(13.2438, 21.6008) controlPoint1:NSMakePoint(12.6988, 22.259) controlPoint2:NSMakePoint(13.0719, 21.877)]; + [path curveToPoint:NSMakePoint(13.9605, 20.059) controlPoint1:NSMakePoint(13.5316, 21.1406) controlPoint2:NSMakePoint(13.6008, 20.9688)]; + [path curveToPoint:NSMakePoint(14.5719, 17.8277) controlPoint1:NSMakePoint(14.3535, 19.0668) controlPoint2:NSMakePoint(14.5246, 18.1406)]; + [path lineToPoint:NSMakePoint(14.6566, 17.3758)]; + [path curveToPoint:NSMakePoint(14.6129, 18.5379) controlPoint1:NSMakePoint(14.6559, 17.4156) controlPoint2:NSMakePoint(14.6137, 18.4977)]; + [path curveToPoint:NSMakePoint(14.5746, 21.477) controlPoint1:NSMakePoint(14.5777, 19.5668) controlPoint2:NSMakePoint(14.5527, 20.3609)]; + [path curveToPoint:NSMakePoint(14.6586, 22.1918) controlPoint1:NSMakePoint(14.5766, 21.6027) controlPoint2:NSMakePoint(14.6387, 22.0637)]; + [path curveToPoint:NSMakePoint(15.3316, 23.1707) controlPoint1:NSMakePoint(14.7367, 22.6918) controlPoint2:NSMakePoint(14.9637, 22.9918)]; + [path curveToPoint:NSMakePoint(16.7328, 23.1879) controlPoint1:NSMakePoint(15.7438, 23.3719) controlPoint2:NSMakePoint(16.2578, 23.3859)]; + [path curveToPoint:NSMakePoint(17.4195, 22.1656) controlPoint1:NSMakePoint(17.1559, 23.0148) controlPoint2:NSMakePoint(17.3586, 22.6379)]; + [path curveToPoint:NSMakePoint(17.5129, 21.059) controlPoint1:NSMakePoint(17.4336, 22.0566) controlPoint2:NSMakePoint(17.5137, 21.1789)]; + [path curveToPoint:NSMakePoint(17.5277, 18.8848) controlPoint1:NSMakePoint(17.4996, 20.034) controlPoint2:NSMakePoint(17.5188, 19.418)]; + [path curveToPoint:NSMakePoint(17.5445, 17.4156) controlPoint1:NSMakePoint(17.5316, 18.6539) controlPoint2:NSMakePoint(17.5309, 17.2598)]; + [path curveToPoint:NSMakePoint(17.8887, 21.3578) controlPoint1:NSMakePoint(17.6059, 18.0719) controlPoint2:NSMakePoint(17.6387, 20.6047)]; + [path curveToPoint:NSMakePoint(18.6828, 22.2867) controlPoint1:NSMakePoint(18.0328, 21.7906) controlPoint2:NSMakePoint(18.2938, 22.1039)]; + [path curveToPoint:NSMakePoint(20.0867, 22.0438) controlPoint1:NSMakePoint(19.1137, 22.4898) controlPoint2:NSMakePoint(19.7957, 22.3566)]; + [path curveToPoint:NSMakePoint(20.5688, 20.8906) controlPoint1:NSMakePoint(20.3719, 21.7387) controlPoint2:NSMakePoint(20.5328, 21.352)]; + [path curveToPoint:NSMakePoint(20.5488, 19.6457) controlPoint1:NSMakePoint(20.6008, 20.4859) controlPoint2:NSMakePoint(20.5496, 19.9938)]; + [path curveToPoint:NSMakePoint(20.5117, 17.5246) controlPoint1:NSMakePoint(20.5488, 18.7789) controlPoint2:NSMakePoint(20.5277, 18.3219)]; + [path curveToPoint:NSMakePoint(20.5348, 17.343) controlPoint1:NSMakePoint(20.5105, 17.4867) controlPoint2:NSMakePoint(20.4969, 17.227)]; + [path curveToPoint:NSMakePoint(20.8008, 18.0879) controlPoint1:NSMakePoint(20.6285, 17.6227) controlPoint2:NSMakePoint(20.7227, 17.8848)]; + [path curveToPoint:NSMakePoint(21.1598, 18.9469) controlPoint1:NSMakePoint(20.8496, 18.2129) controlPoint2:NSMakePoint(21.0418, 18.702)]; + [path curveToPoint:NSMakePoint(21.5746, 19.6348) controlPoint1:NSMakePoint(21.2738, 19.1809) controlPoint2:NSMakePoint(21.3707, 19.3156)]; + [path curveToPoint:NSMakePoint(22.2426, 20.1957) controlPoint1:NSMakePoint(21.7746, 19.9477) controlPoint2:NSMakePoint(21.9898, 20.0828)]; + [path curveToPoint:NSMakePoint(23.5438, 19.6047) controlPoint1:NSMakePoint(22.7828, 20.4309) controlPoint2:NSMakePoint(23.3516, 20.084)]; + [path curveToPoint:NSMakePoint(23.5156, 18.4996) controlPoint1:NSMakePoint(23.6297, 19.3898) controlPoint2:NSMakePoint(23.5527, 18.8918)]; + [path curveToPoint:NSMakePoint(23.1637, 16.852) controlPoint1:NSMakePoint(23.4547, 17.8527) controlPoint2:NSMakePoint(23.2617, 17.1938)]; + [path curveToPoint:NSMakePoint(22.8238, 15.2508) controlPoint1:NSMakePoint(23.0355, 16.4047) controlPoint2:NSMakePoint(22.8898, 15.6168)]; + [path curveToPoint:NSMakePoint(22.4648, 13.4309) controlPoint1:NSMakePoint(22.7516, 14.8566) controlPoint2:NSMakePoint(22.5898, 13.8688)]; + [path curveToPoint:NSMakePoint(21.8129, 12.0469) controlPoint1:NSMakePoint(22.3785, 13.1297) controlPoint2:NSMakePoint(22.0938, 12.4527)]; + [path curveToPoint:NSMakePoint(20.6207, 10.2348) controlPoint1:NSMakePoint(21.8129, 12.0469) controlPoint2:NSMakePoint(20.7387, 10.7969)]; + [path curveToPoint:NSMakePoint(20.5195, 9.26992) controlPoint1:NSMakePoint(20.5035, 9.67188) controlPoint2:NSMakePoint(20.5426, 9.66797)]; + [path curveToPoint:NSMakePoint(20.6406, 8.34688) controlPoint1:NSMakePoint(20.4957, 8.8707) controlPoint2:NSMakePoint(20.4957, 8.8707)]; + [path curveToPoint:NSMakePoint(19.4066, 8.31289) controlPoint1:NSMakePoint(20.6406, 8.34688) controlPoint2:NSMakePoint(19.8387, 8.24297)]; + [path curveToPoint:NSMakePoint(18.4066, 9.39063) controlPoint1:NSMakePoint(19.0156, 8.37461) controlPoint2:NSMakePoint(18.5316, 9.15391)]; + [path curveToPoint:NSMakePoint(17.7246, 9.41367) controlPoint1:NSMakePoint(18.2348, 9.71875) controlPoint2:NSMakePoint(17.8676, 9.65586)]; + [path curveToPoint:NSMakePoint(16.6738, 8.30078) controlPoint1:NSMakePoint(17.4996, 9.03086) controlPoint2:NSMakePoint(17.0156, 8.34375)]; + [path curveToPoint:NSMakePoint(13.5348, 8.28086) controlPoint1:NSMakePoint(16.0059, 8.2168) controlPoint2:NSMakePoint(14.6195, 8.2707)]; + [path curveToPoint:NSMakePoint(13.3078, 9.63867) controlPoint1:NSMakePoint(13.5348, 8.28086) controlPoint2:NSMakePoint(13.7195, 9.2918)]; + [path curveToPoint:NSMakePoint(12.1637, 10.6988) controlPoint1:NSMakePoint(13.0027, 9.89883) controlPoint2:NSMakePoint(12.4777, 10.4227)]; + [path lineToPoint:NSMakePoint(11.3316, 11.6199)]; + [path curveToPoint:NSMakePoint(10.0887, 13.6047) controlPoint1:NSMakePoint(11.0477, 11.9797) controlPoint2:NSMakePoint(10.7027, 12.7129)]; + [path curveToPoint:NSMakePoint(8.80469, 15.184) controlPoint1:NSMakePoint(9.74063, 14.109) controlPoint2:NSMakePoint(9.06172, 14.6898)]; + [path curveToPoint:NSMakePoint(8.61484, 16.509) controlPoint1:NSMakePoint(8.58164, 15.609) controlPoint2:NSMakePoint(8.47383, 16.1379)]; + [path curveToPoint:NSMakePoint(9.97656, 17.3406) controlPoint1:NSMakePoint(8.83984, 17.1027) controlPoint2:NSMakePoint(9.28984, 17.4059)]; + [path curveToPoint:NSMakePoint(11.2148, 16.8039) controlPoint1:NSMakePoint(10.4957, 17.2906) controlPoint2:NSMakePoint(10.8246, 17.1348)]; + [path curveToPoint:NSMakePoint(11.9648, 16.0559) controlPoint1:NSMakePoint(11.4398, 16.6137) controlPoint2:NSMakePoint(11.7879, 16.2699)]; + [path curveToPoint:NSMakePoint(12.3418, 15.5469) controlPoint1:NSMakePoint(12.1277, 15.8609) controlPoint2:NSMakePoint(12.1676, 15.7797)]; + [path curveToPoint:NSMakePoint(12.5559, 15.4258) controlPoint1:NSMakePoint(12.5719, 15.2398) controlPoint2:NSMakePoint(12.6438, 15.0879)]; + [path closePath]; + [path moveToPoint:NSMakePoint(19.5664, 11.2656)]; + [path lineToPoint:NSMakePoint(19.5664, 14.7246)]; + [path moveToPoint:NSMakePoint(17.5508, 11.2539)]; + [path lineToPoint:NSMakePoint(17.5348, 14.727)]; + [path moveToPoint:NSMakePoint(15.5547, 14.6953)]; + [path lineToPoint:NSMakePoint(15.5758, 11.2691)]; + [path setLineJoinStyle:NSLineJoinStyleRound]; + [path setLineCapStyle:NSLineCapStyleRound]; + [NSGraphicsContext saveGraphicsState]; + [fillColor setFill]; + [NSShadow setShadowWithWhite:0.0 alpha:0.5 blurRadius:1.0 yOffset:-1.4]; + [path fill]; + [NSGraphicsContext restoreGraphicsState]; + [strokeColor setStroke]; + [path setLineWidth:0.75]; + [path stroke]; +} + +void drawClosedHandCursor(NSColor *strokeColor, NSColor *fillColor) { + NSBezierPath *path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(12.573, 18.9641)]; + [path curveToPoint:NSMakePoint(14.2504, 18.491) controlPoint1:NSMakePoint(13.0531, 19.1418) controlPoint2:NSMakePoint(14.0004, 19.0328)]; + [path curveToPoint:NSMakePoint(14.6563, 17.416) controlPoint1:NSMakePoint(14.4633, 18.0289) controlPoint2:NSMakePoint(14.6461, 17.25)]; + [path curveToPoint:NSMakePoint(14.7934, 19.) controlPoint1:NSMakePoint(14.6801, 17.7848) controlPoint2:NSMakePoint(14.632, 18.5828)]; + [path curveToPoint:NSMakePoint(15.4793, 19.691) controlPoint1:NSMakePoint(14.9102, 19.3039) controlPoint2:NSMakePoint(15.1402, 19.5898)]; + [path curveToPoint:NSMakePoint(16.3953, 19.7461) controlPoint1:NSMakePoint(15.7641, 19.777) controlPoint2:NSMakePoint(16.0992, 19.807)]; + [path curveToPoint:NSMakePoint(17.1602, 19.2469) controlPoint1:NSMakePoint(16.7082, 19.682) controlPoint2:NSMakePoint(17.0371, 19.459)]; + [path curveToPoint:NSMakePoint(17.5453, 17.416) controlPoint1:NSMakePoint(17.5223, 18.6238) controlPoint2:NSMakePoint(17.5281, 17.348)]; + [path curveToPoint:NSMakePoint(17.8281, 19.) controlPoint1:NSMakePoint(17.6094, 17.6879) controlPoint2:NSMakePoint(17.6152, 18.6449)]; + [path curveToPoint:NSMakePoint(18.5152, 19.4789) controlPoint1:NSMakePoint(17.9691, 19.2348) controlPoint2:NSMakePoint(18.3254, 19.4449)]; + [path curveToPoint:NSMakePoint(19.4793, 19.4867) controlPoint1:NSMakePoint(18.8094, 19.5309) controlPoint2:NSMakePoint(19.1711, 19.5469)]; + [path curveToPoint:NSMakePoint(20.1563, 19.) controlPoint1:NSMakePoint(19.7281, 19.4379) controlPoint2:NSMakePoint(20.0652, 19.143)]; + [path curveToPoint:NSMakePoint(20.5352, 17.3418) controlPoint1:NSMakePoint(20.3754, 18.6559) controlPoint2:NSMakePoint(20.498, 17.684)]; + [path curveToPoint:NSMakePoint(20.8281, 18.0777) controlPoint1:NSMakePoint(20.5512, 17.2008) controlPoint2:NSMakePoint(20.6094, 17.7348)]; + [path curveToPoint:NSMakePoint(22.7262, 17.4391) controlPoint1:NSMakePoint(21.2344, 18.7168) controlPoint2:NSMakePoint(22.6723, 18.841)]; + [path curveToPoint:NSMakePoint(22.7461, 16.375) controlPoint1:NSMakePoint(22.7523, 16.7848) controlPoint2:NSMakePoint(22.7461, 16.8148)]; + [path curveToPoint:NSMakePoint(22.7063, 15.173) controlPoint1:NSMakePoint(22.7461, 15.859) controlPoint2:NSMakePoint(22.7344, 15.5469)]; + [path curveToPoint:NSMakePoint(22.4652, 13.4309) controlPoint1:NSMakePoint(22.6762, 14.7738) controlPoint2:NSMakePoint(22.5902, 13.8688)]; + [path curveToPoint:NSMakePoint(21.8121, 12.0469) controlPoint1:NSMakePoint(22.3793, 13.1301) controlPoint2:NSMakePoint(22.0941, 12.4527)]; + [path curveToPoint:NSMakePoint(20.6211, 10.2348) controlPoint1:NSMakePoint(21.8121, 12.0469) controlPoint2:NSMakePoint(20.7383, 10.7969)]; + [path curveToPoint:NSMakePoint(20.5191, 9.26992) controlPoint1:NSMakePoint(20.5043, 9.67188) controlPoint2:NSMakePoint(20.5434, 9.66797)]; + [path curveToPoint:NSMakePoint(20.6402, 8.34688) controlPoint1:NSMakePoint(20.4961, 8.87109) controlPoint2:NSMakePoint(20.4961, 8.87109)]; + [path curveToPoint:NSMakePoint(19.4063, 8.31289) controlPoint1:NSMakePoint(20.6402, 8.34688) controlPoint2:NSMakePoint(19.8391, 8.24297)]; + [path curveToPoint:NSMakePoint(18.4063, 9.39102) controlPoint1:NSMakePoint(19.0152, 8.375) controlPoint2:NSMakePoint(18.5313, 9.15273)]; + [path curveToPoint:NSMakePoint(17.7242, 9.41406) controlPoint1:NSMakePoint(18.2344, 9.71875) controlPoint2:NSMakePoint(17.8672, 9.65586)]; + [path curveToPoint:NSMakePoint(16.6742, 8.30078) controlPoint1:NSMakePoint(17.5004, 9.03086) controlPoint2:NSMakePoint(17.0152, 8.34375)]; + [path curveToPoint:NSMakePoint(13.5344, 8.28086) controlPoint1:NSMakePoint(16.0051, 8.2168) controlPoint2:NSMakePoint(14.6191, 8.27109)]; + [path curveToPoint:NSMakePoint(13.307, 9.63906) controlPoint1:NSMakePoint(13.5344, 8.28086) controlPoint2:NSMakePoint(13.7191, 9.2918)]; + [path curveToPoint:NSMakePoint(12.1633, 10.6988) controlPoint1:NSMakePoint(13.0023, 9.89883) controlPoint2:NSMakePoint(12.4773, 10.423)]; + [path lineToPoint:NSMakePoint(11.3313, 11.6199)]; + [path curveToPoint:NSMakePoint(10.0883, 13.6051) controlPoint1:NSMakePoint(11.048, 11.9801) controlPoint2:NSMakePoint(10.3293, 12.5488)]; + [path curveToPoint:NSMakePoint(10.1254, 15.375) controlPoint1:NSMakePoint(9.87539, 14.541) controlPoint2:NSMakePoint(9.89609, 15.)]; + [path curveToPoint:NSMakePoint(10.9793, 16.) controlPoint1:NSMakePoint(10.357, 15.7559) controlPoint2:NSMakePoint(10.7953, 15.9641)]; + [path curveToPoint:NSMakePoint(11.8543, 15.9379) controlPoint1:NSMakePoint(11.1871, 16.0418) controlPoint2:NSMakePoint(11.6711, 16.0391)]; + [path curveToPoint:NSMakePoint(12.3422, 15.5469) controlPoint1:NSMakePoint(12.0773, 15.8148) controlPoint2:NSMakePoint(12.1672, 15.7789)]; + [path curveToPoint:NSMakePoint(12.5551, 15.4258) controlPoint1:NSMakePoint(12.5723, 15.2398) controlPoint2:NSMakePoint(12.6543, 15.091)]; + [path curveToPoint:NSMakePoint(12.1211, 16.3961) controlPoint1:NSMakePoint(12.4793, 15.6879) controlPoint2:NSMakePoint(12.2332, 16.0211)]; + [path curveToPoint:NSMakePoint(11.741, 17.9219) controlPoint1:NSMakePoint(12.0121, 16.757) controlPoint2:NSMakePoint(11.7203, 17.3391)]; + [path curveToPoint:NSMakePoint(12.573, 18.9641) controlPoint1:NSMakePoint(11.7492, 18.143) controlPoint2:NSMakePoint(11.8441, 18.693)]; + [path closePath]; + [path moveToPoint:NSMakePoint(19.5664, 11.2656)]; + [path lineToPoint:NSMakePoint(19.5664, 14.7246)]; + [path moveToPoint:NSMakePoint(17.5508, 11.2539)]; + [path lineToPoint:NSMakePoint(17.5348, 14.727)]; + [path moveToPoint:NSMakePoint(15.5547, 14.6953)]; + [path lineToPoint:NSMakePoint(15.5758, 11.2691)]; + [path setLineJoinStyle:NSLineJoinStyleRound]; + [path setLineCapStyle:NSLineCapStyleRound]; + [NSGraphicsContext saveGraphicsState]; + [fillColor setFill]; + [NSShadow setShadowWithWhite:0.0 alpha:0.5 blurRadius:1.0 yOffset:-1.4]; + [path fill]; + [NSGraphicsContext restoreGraphicsState]; + [strokeColor setStroke]; + [path setLineWidth:0.75]; + [path stroke]; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-28 17:20:54
|
Revision: 14402 http://sourceforge.net/p/skim-app/code/14402 Author: hofman Date: 2024-07-28 17:20:53 +0000 (Sun, 28 Jul 2024) Log Message: ----------- Draw arrow ourselves for note cursors Modified Paths: -------------- trunk/NSImage_SKExtensions.m Modified: trunk/NSImage_SKExtensions.m =================================================================== --- trunk/NSImage_SKExtensions.m 2024-07-27 18:04:35 UTC (rev 14401) +++ trunk/NSImage_SKExtensions.m 2024-07-28 17:20:53 UTC (rev 14402) @@ -204,7 +204,7 @@ static inline void drawPageBackgroundInRect(NSRect rect); -static inline void drawArrowCursor(); +static inline void drawArrowCursor(NSColor *outlineColor, NSColor *fillColor); static void evaluateLaserPointer(void *info, const CGFloat *in, CGFloat *out); @@ -1595,9 +1595,9 @@ #define DEFINE_NOTE_CURSOR_IMAGE(name) \ + (NSImage *)cursor ## name ## NoteImageWithOutlineColor:(NSColor *)outlineColor fillColor:(NSColor *)fillColor { \ - return [[NSImage alloc] initPDFWithSize:NSMakeSize(24.0, 42.0) drawingHandler:^(NSRect dstRect){ \ - drawArrowCursor(); \ - translate(2.0, 2.0); \ + return [[NSImage alloc] initPDFWithSize:NSMakeSize(24.0, 40.0) drawingHandler:^(NSRect dstRect){ \ + drawArrowCursor(outlineColor, fillColor); \ + translate(3.0, 3.0); \ draw ## name ## NoteBackground(outlineColor); \ draw ## name ## Note(fillColor); \ }]; \ @@ -1982,9 +1982,26 @@ [NSGraphicsContext restoreGraphicsState]; } -static inline void drawArrowCursor() { - NSImage *arrowCursor = [[NSCursor arrowCursor] image]; - [arrowCursor drawAtPoint:NSMakePoint(0.0, 42.0 - [arrowCursor size].height) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; +static inline void drawArrowCursor(NSColor *outlineColor, NSColor *fillColor) { + NSBezierPath *path = NSBezierPath.bezierPath; + [path moveToPoint:NSMakePoint(3.0, 37.0 + M_SQRT2)]; + [path lineToPoint:NSMakePoint(3.0, 35.0 - 9.0 * M_SQRT2)]; + [path lineToPoint:NSMakePoint(9.0 * M_SQRT2 - 5.0, 27.0)]; + [path lineToPoint:NSMakePoint(13.0 + M_SQRT2, 27.0)]; + [path closePath]; + [NSGraphicsContext saveGraphicsState]; + [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:2.0 yOffset:-1.0]; + [outlineColor setFill]; + [path fill]; + [NSGraphicsContext restoreGraphicsState]; + path = NSBezierPath.bezierPath; + [path moveToPoint:NSMakePoint(4.0, 36.0)]; + [path lineToPoint:NSMakePoint(4.0, 36.0 - 8.0 * M_SQRT2)]; + [path lineToPoint:NSMakePoint(8.0 * M_SQRT2 - 4.0, 28.0)]; + [path lineToPoint:NSMakePoint(12.0, 28.0)]; + [path closePath]; + [fillColor setFill]; + [path fill]; } static void evaluateLaserPointer(void *info, const CGFloat *in, CGFloat *out) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-27 18:04:36
|
Revision: 14401 http://sourceforge.net/p/skim-app/code/14401 Author: hofman Date: 2024-07-27 18:04:35 +0000 (Sat, 27 Jul 2024) Log Message: ----------- change zoom in/out cursors to be more like (private) system versions Modified Paths: -------------- trunk/NSCursor_SKExtensions.m Modified: trunk/NSCursor_SKExtensions.m =================================================================== --- trunk/NSCursor_SKExtensions.m 2024-07-26 16:32:43 UTC (rev 14400) +++ trunk/NSCursor_SKExtensions.m 2024-07-27 18:04:35 UTC (rev 14401) @@ -227,15 +227,15 @@ [customCursors setObject:cursor forKey:@"resizeDiagonal135Cursor"]; } - hotspot = NSMakePoint(7.0, 6.0); + hotspot = NSMakePoint(8.0, 7.0); - image = [[NSImage alloc] initPDFWithSize:NSMakeSize(18.0, 18.0) drawingHandler:^(NSRect dstRect){ + image = [[NSImage alloc] initPDFWithSize:NSMakeSize(20.0, 20.0) drawingHandler:^(NSRect dstRect){ [cursorOutline set]; - NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(1.0, 5.0, 13.0, 13.0)]; - [path moveToPoint:NSMakePoint(14.5, 1.5)]; - [path lineToPoint:NSMakePoint(17.5, 4.5)]; - [path lineToPoint:NSMakePoint(12.5, 9.5)]; - [path lineToPoint:NSMakePoint(9.5, 6.5)]; + NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(1.0, 6.0, 14.0, 14.0)]; + [path moveToPoint:NSMakePoint(16.5, 1.5)]; + [path lineToPoint:NSMakePoint(19.5, 4.5)]; + [path lineToPoint:NSMakePoint(14.0, 10.0)]; + [path lineToPoint:NSMakePoint(11.0, 7.0)]; [path closePath]; [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; @@ -242,32 +242,32 @@ [path fill]; [NSGraphicsContext restoreGraphicsState]; [cursorFill setStroke]; - path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(3.0, 7.0, 9.0, 9.0)]; - [path setLineWidth:2.0]; + path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(2.5, 7.5, 11.0, 11.0)]; + [path setLineWidth:1.0]; [path stroke]; path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(15.5, 3.5)]; - [path lineToPoint:NSMakePoint(10.5, 8.5)]; - [path setLineWidth:2.5]; + [path moveToPoint:NSMakePoint(17.25, 3.75)]; + [path lineToPoint:NSMakePoint(11.75, 9.25)]; + [path setLineWidth:2.0]; [path stroke]; path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(5.0, 11.5)]; - [path lineToPoint:NSMakePoint(10.0, 11.5)]; - [path moveToPoint:NSMakePoint(7.5, 9.0)]; - [path lineToPoint:NSMakePoint(7.5, 14.0)]; - [path setLineWidth:1.0]; + [path moveToPoint:NSMakePoint(5.0, 13.0)]; + [path lineToPoint:NSMakePoint(11.0, 13.0)]; + [path moveToPoint:NSMakePoint(8.0, 10.0)]; + [path lineToPoint:NSMakePoint(8.0, 16.0)]; + [path setLineWidth:2.0]; [path stroke]; }]; cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; [customCursors setObject:cursor forKey:@"zoomInCursor"]; - image = [[NSImage alloc] initPDFWithSize:NSMakeSize(18.0, 18.0) drawingHandler:^(NSRect dstRect){ + image = [[NSImage alloc] initPDFWithSize:NSMakeSize(20.0, 20.0) drawingHandler:^(NSRect dstRect){ [cursorOutline set]; - NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(1.0, 5.0, 13.0, 13.0)]; - [path moveToPoint:NSMakePoint(14.5, 1.5)]; - [path lineToPoint:NSMakePoint(17.5, 4.5)]; - [path lineToPoint:NSMakePoint(12.5, 9.5)]; - [path lineToPoint:NSMakePoint(9.5, 6.5)]; + NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(1.0, 6.0, 14.0, 14.0)]; + [path moveToPoint:NSMakePoint(16.5, 1.5)]; + [path lineToPoint:NSMakePoint(19.5, 4.5)]; + [path lineToPoint:NSMakePoint(14.0, 10.0)]; + [path lineToPoint:NSMakePoint(11.0, 7.0)]; [path closePath]; [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; @@ -274,18 +274,18 @@ [path fill]; [NSGraphicsContext restoreGraphicsState]; [cursorFill setStroke]; - path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(3.0, 7.0, 9.0, 9.0)]; - [path setLineWidth:2.0]; + path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(2.5, 7.5, 11.0, 11.0)]; + [path setLineWidth:1.0]; [path stroke]; path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(15.5, 3.5)]; - [path lineToPoint:NSMakePoint(10.5, 8.5)]; - [path setLineWidth:2.5]; + [path moveToPoint:NSMakePoint(17.25, 3.75)]; + [path lineToPoint:NSMakePoint(11.75, 9.25)]; + [path setLineWidth:2.0]; [path stroke]; path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(5.0, 11.5)]; - [path lineToPoint:NSMakePoint(10.0, 11.5)]; - [path setLineWidth:1.0]; + [path moveToPoint:NSMakePoint(5.0, 13.0)]; + [path lineToPoint:NSMakePoint(11.0, 13.0)]; + [path setLineWidth:2.0]; [path stroke]; }]; cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-26 16:32:46
|
Revision: 14400 http://sourceforge.net/p/skim-app/code/14400 Author: hofman Date: 2024-07-26 16:32:43 +0000 (Fri, 26 Jul 2024) Log Message: ----------- Use Pointer instead of Cursor Modified Paths: -------------- trunk/SKNavigationWindow.m trunk/SKPDFView.m trunk/de.lproj/Localizable.strings trunk/en.lproj/Localizable.strings trunk/es.lproj/Localizable.strings trunk/fr.lproj/Localizable.strings trunk/it.lproj/Localizable.strings trunk/ja.lproj/Localizable.strings trunk/nl.lproj/Localizable.strings trunk/pl.lproj/Localizable.strings trunk/ru.lproj/Localizable.strings trunk/zh_CN.lproj/Localizable.strings trunk/zh_TW.lproj/Localizable.strings Modified: trunk/SKNavigationWindow.m =================================================================== --- trunk/SKNavigationWindow.m 2024-07-26 15:45:37 UTC (rev 14399) +++ trunk/SKNavigationWindow.m 2024-07-26 16:32:43 UTC (rev 14400) @@ -199,7 +199,7 @@ cursorButton = [[SKNavigationButton alloc] initWithFrame:rect]; [cursorButton setTarget:pdfView]; [cursorButton setAction:@selector(showCursorStyleWindow:)]; - [cursorButton setToolTip:NSLocalizedString(@"Cursor", @"Tool tip message")]; + [cursorButton setToolTip:NSLocalizedString(@"Pointer", @"Tool tip message")]; [cursorButton setPath:cursorButtonPath(rect.size)]; [[self contentView] addSubview:cursorButton]; Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2024-07-26 15:45:37 UTC (rev 14399) +++ trunk/SKPDFView.m 2024-07-26 16:32:43 UTC (rev 14400) @@ -5167,7 +5167,7 @@ [item setKeyEquivalentModifierMask:0]; item = [menu addItemWithTitle:NSLocalizedString(@"Laser Pointer Color", @"Menu item title") action:@selector(nextLaserPointerColor:) keyEquivalent:@"c"]; [item setKeyEquivalentModifierMask:0]; - item = [menu addItemWithTitle:NSLocalizedString(@"Cursors", @"Menu item title") action:@selector(showCursorStyleWindow:) keyEquivalent:@","]; + item = [menu addItemWithTitle:NSLocalizedString(@"Pointers", @"Menu item title") action:@selector(showCursorStyleWindow:) keyEquivalent:@","]; [item setKeyEquivalentModifierMask:0]; item = [menu addItemWithTitle:NSLocalizedString(@"End", @"Menu item title") action:@selector(cancelOperation:) keyEquivalent:@"\e"]; [item setKeyEquivalentModifierMask:0]; Modified: trunk/de.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/en.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/es.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/fr.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/it.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/ja.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/nl.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/pl.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/ru.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/zh_CN.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/zh_TW.lproj/Localizable.strings =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-26 15:45:38
|
Revision: 14399 http://sourceforge.net/p/skim-app/code/14399 Author: hofman Date: 2024-07-26 15:45:37 +0000 (Fri, 26 Jul 2024) Log Message: ----------- Get cursor from method innstead of dictionary of cursors Modified Paths: -------------- trunk/NSCursor_SKExtensions.m Modified: trunk/NSCursor_SKExtensions.m =================================================================== --- trunk/NSCursor_SKExtensions.m 2024-07-26 15:02:00 UTC (rev 14398) +++ trunk/NSCursor_SKExtensions.m 2024-07-26 15:45:37 UTC (rev 14399) @@ -95,7 +95,7 @@ return @{}; } -+ (NSDictionary *)customCursors { ++ (NSCursor *)customCursorWithName:(NSString *)name { static NSMutableDictionary *customCursors = nil; static NSDictionary *cursorColors = nil; @@ -400,15 +400,15 @@ [customCursors setObject:cursor forKey:@"inkNoteCursor"]; } - return customCursors; + return [customCursors objectForKey:name]; } + (NSCursor *)zoomInCursor { - return [[self customCursors] objectForKey:@"zoomInCursor"]; + return [self customCursorWithName:@"zoomInCursor"]; } + (NSCursor *)zoomOutCursor { - return [[self customCursors] objectForKey:@"zoomOutCursor"]; + return [self customCursorWithName:@"zoomOutCursor"]; } + (NSCursor *)resizeDiagonal45Cursor { @@ -415,7 +415,7 @@ if ([self respondsToSelector:@selector(_windowResizeNorthEastSouthWestCursor)]) { return [NSCursor _windowResizeNorthEastSouthWestCursor]; } else { - return [[self customCursors] objectForKey:@"resizeDiagonal45Cursor"]; + return [self customCursorWithName:@"resizeDiagonal45Cursor"]; } } @@ -423,56 +423,56 @@ if ([self respondsToSelector:@selector(_windowResizeNorthWestSouthEastCursor)]) { return [NSCursor _windowResizeNorthWestSouthEastCursor]; } else { - return [[self customCursors] objectForKey:@"resizeDiagonal135Cursor"]; + return [self customCursorWithName:@"resizeDiagonal135Cursor"]; } } + (NSCursor *)cameraCursor { - return [[self customCursors] objectForKey:@"cameraCursor"]; + return [self customCursorWithName:@"cameraCursor"]; } + (NSCursor *)openHandBarCursor { - return [[self customCursors] objectForKey:@"openHandBarCursor"]; + return [self customCursorWithName:@"openHandBarCursor"]; } + (NSCursor *)closedHandBarCursor { - return [[self customCursors] objectForKey:@"closedHandBarCursor"]; + return [self customCursorWithName:@"closedHandBarCursor"]; } + (NSCursor *)textNoteCursor { - return [[self customCursors] objectForKey:@"textNoteCursor"]; + return [self customCursorWithName:@"textNoteCursor"]; } + (NSCursor *)anchoredNoteCursor { - return [[self customCursors] objectForKey:@"anchoredNoteCursor"]; + return [self customCursorWithName:@"anchoredNoteCursor"]; } + (NSCursor *)circleNoteCursor { - return [[self customCursors] objectForKey:@"circleNoteCursor"]; + return [self customCursorWithName:@"circleNoteCursor"]; } + (NSCursor *)squareNoteCursor { - return [[self customCursors] objectForKey:@"squareNoteCursor"]; + return [self customCursorWithName:@"squareNoteCursor"]; } + (NSCursor *)highlightNoteCursor { - return [[self customCursors] objectForKey:@"highlightNoteCursor"]; + return [self customCursorWithName:@"highlightNoteCursor"]; } + (NSCursor *)underlineNoteCursor { - return [[self customCursors] objectForKey:@"underlineNoteCursor"]; + return [self customCursorWithName:@"underlineNoteCursor"]; } + (NSCursor *)strikeOutNoteCursor { - return [[self customCursors] objectForKey:@"strikeOutNoteCursor"]; + return [self customCursorWithName:@"strikeOutNoteCursor"]; } + (NSCursor *)lineNoteCursor { - return [[self customCursors] objectForKey:@"lineNoteCursor"]; + return [self customCursorWithName:@"lineNoteCursor"]; } + (NSCursor *)inkNoteCursor { - return [[self customCursors] objectForKey:@"inkNoteCursor"]; + return [self customCursorWithName:@"inkNoteCursor"]; } + (NSCursor *)emptyCursor { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-26 15:02:01
|
Revision: 14398 http://sourceforge.net/p/skim-app/code/14398 Author: hofman Date: 2024-07-26 15:02:00 +0000 (Fri, 26 Jul 2024) Log Message: ----------- Redraw custom cursors when color defaults change. Draw cursor images in NSursor category. Modified Paths: -------------- trunk/NSCursor_SKExtensions.m trunk/NSImage_SKExtensions.h trunk/NSImage_SKExtensions.m Modified: trunk/NSCursor_SKExtensions.m =================================================================== --- trunk/NSCursor_SKExtensions.m 2024-07-25 16:44:49 UTC (rev 14397) +++ trunk/NSCursor_SKExtensions.m 2024-07-26 15:02:00 UTC (rev 14398) @@ -42,6 +42,7 @@ #import "SKAnimatedBorderlessWindow.h" #import "NSGeometry_SKExtensions.h" #import "NSWindow_SKExtensions.h" +#import "NSShadow_SKExtensions.h" static inline void hideLaserPointer(void); @@ -75,156 +76,403 @@ original_hide = (void(*)(id, SEL))SKReplaceClassMethodImplementationFromSelector(self, @selector(hide), @selector(replacement_hide)); } -+ (NSCursor *)zoomInCursor { - static NSCursor *zoomInCursor = nil; - if (nil == zoomInCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameZoomInCursor] copy]; - zoomInCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(7.0, 6.0)]; - } - return zoomInCursor; +static NSUserDefaults *universalaccessDefaults() { + static NSUserDefaults *universalaccessDefaults = nil; + if (universalaccessDefaults == nil) + universalaccessDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"com.apple.universalaccess"]; + return universalaccessDefaults; } -+ (NSCursor *)zoomOutCursor { - static NSCursor *zoomOutCursor = nil; - if (nil == zoomOutCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameZoomOutCursor] copy]; - zoomOutCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(7.0, 6.0)]; +static NSDictionary *currentCursorColors() { + if (@available(macOS 12.0, *)) { + if ([universalaccessDefaults() boolForKey:@"cursorIsCustomized"]) { + NSDictionary *cursorOutline = [universalaccessDefaults() dictionaryForKey:@"cursorOutline"]; + NSDictionary *cursorFill = [universalaccessDefaults() dictionaryForKey:@"cursorFill"]; + if ([cursorOutline count] == 4 && [cursorFill count] == 4) + return @{@"cursorOutline":cursorOutline, @"cursorFill":cursorFill}; + } } - return zoomOutCursor; + return @{}; } -+ (NSCursor *)resizeDiagonal45Cursor { - static NSCursor *resizeDiagonal45Cursor = nil; - if (nil == resizeDiagonal45Cursor) { - if ([self respondsToSelector:@selector(_windowResizeNorthEastSouthWestCursor)]) { - resizeDiagonal45Cursor = [NSCursor _windowResizeNorthEastSouthWestCursor]; ++ (NSDictionary *)customCursors { + static NSMutableDictionary *customCursors = nil; + static NSDictionary *cursorColors = nil; + + NSDictionary *currentColors = currentCursorColors(); + + if ([currentColors isEqualToDictionary:cursorColors] == NO) { + cursorColors = currentColors; + + customCursors = [NSMutableDictionary dictionary]; + + NSColor *cursorOutline = [NSColor whiteColor]; + NSColor *cursorFill = [NSColor blackColor]; + if ([cursorColors count] == 2) { + NSDictionary *color = [cursorColors objectForKey:@"cursorOutline"]; + cursorOutline = [NSColor colorWithSRGBRed:[[color objectForKey:@"red"] doubleValue] green:[[color objectForKey:@"green"] doubleValue] blue:[[color objectForKey:@"blue"] doubleValue] alpha:[[color objectForKey:@"alpha"] doubleValue]] ?: cursorOutline; + color = [cursorColors objectForKey:@"cursorFill"]; + cursorFill = [NSColor colorWithSRGBRed:[[color objectForKey:@"red"] doubleValue] green:[[color objectForKey:@"green"] doubleValue] blue:[[color objectForKey:@"blue"] doubleValue] alpha:[[color objectForKey:@"alpha"] doubleValue]] ?: cursorFill; + } + + NSImage *image; + NSCursor *cursor; + NSPoint hotspot; + + if ([self respondsToSelector:@selector(_windowResizeNorthEastSouthWestCursor)] == NO || [self respondsToSelector:@selector(_windowResizeNorthWestSouthEastCursor)]) { + hotspot = NSMakePoint(8.0, 8.0); + + image = [[NSImage alloc] initPDFWithSize:NSMakeSize(16.0, 16.0) drawingHandler:^(NSRect dstRect){ + [cursorOutline setFill]; + NSBezierPath *path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(2.0, 2.0)]; + [path lineToPoint:NSMakePoint(9.5, 2.0)]; + [path lineToPoint:NSMakePoint(7.0, 4.5)]; + [path lineToPoint:NSMakePoint(8.0, 5.5)]; + [path lineToPoint:NSMakePoint(12.5, 1.0)]; + [path lineToPoint:NSMakePoint(15.0, 3.5)]; + [path lineToPoint:NSMakePoint(10.5, 8.0)]; + [path lineToPoint:NSMakePoint(11.5, 9.0)]; + [path lineToPoint:NSMakePoint(14.0, 6.5)]; + [path lineToPoint:NSMakePoint(14.0, 14.0)]; + [path lineToPoint:NSMakePoint(6.5, 14.0)]; + [path lineToPoint:NSMakePoint(9.0, 11.5)]; + [path lineToPoint:NSMakePoint(8.0, 10.5)]; + [path lineToPoint:NSMakePoint(3.5, 15.0)]; + [path lineToPoint:NSMakePoint(1.0, 12.5)]; + [path lineToPoint:NSMakePoint(5.5, 8.0)]; + [path lineToPoint:NSMakePoint(4.5, 7.0)]; + [path lineToPoint:NSMakePoint(2.0, 9.5)]; + [path closePath]; + [NSGraphicsContext saveGraphicsState]; + [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; + [path fill]; + [NSGraphicsContext restoreGraphicsState]; + [cursorFill setFill]; + path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(3.0, 3.0)]; + [path lineToPoint:NSMakePoint(7.0, 3.0)]; + [path lineToPoint:NSMakePoint(5.5, 4.5)]; + [path lineToPoint:NSMakePoint(8.0, 7.0)]; + [path lineToPoint:NSMakePoint(12.5, 2.5)]; + [path lineToPoint:NSMakePoint(13.5, 3.5)]; + [path lineToPoint:NSMakePoint(9.0, 8.0)]; + [path lineToPoint:NSMakePoint(11.5, 10.5)]; + [path lineToPoint:NSMakePoint(13.0, 9.0)]; + [path lineToPoint:NSMakePoint(13.0, 13.0)]; + [path lineToPoint:NSMakePoint(9.0, 13.0)]; + [path lineToPoint:NSMakePoint(10.5, 11.5)]; + [path lineToPoint:NSMakePoint(8.0, 9.0)]; + [path lineToPoint:NSMakePoint(3.5, 13.5)]; + [path lineToPoint:NSMakePoint(2.5, 12.5)]; + [path lineToPoint:NSMakePoint(7.0, 8.0)]; + [path lineToPoint:NSMakePoint(4.5, 5.5)]; + [path lineToPoint:NSMakePoint(3.0, 7.0)]; + [path closePath]; + [path fill]; + }]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"resizeDiagonal45Cursor"]; + + image = [[NSImage alloc] initPDFWithSize:NSMakeSize(16.0, 16.0) drawingHandler:^(NSRect dstRect){ + [cursorOutline setFill]; + NSBezierPath *path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(14.0, 2.0)]; + [path lineToPoint:NSMakePoint(14.0, 9.5)]; + [path lineToPoint:NSMakePoint(11.5, 7.0)]; + [path lineToPoint:NSMakePoint(10.5, 8.0)]; + [path lineToPoint:NSMakePoint(15.0, 12.5)]; + [path lineToPoint:NSMakePoint(12.5, 15.0)]; + [path lineToPoint:NSMakePoint(8.0, 10.5)]; + [path lineToPoint:NSMakePoint(7.0, 11.5)]; + [path lineToPoint:NSMakePoint(9.5, 14.0)]; + [path lineToPoint:NSMakePoint(2.0, 14.0)]; + [path lineToPoint:NSMakePoint(2.0, 6.5)]; + [path lineToPoint:NSMakePoint(4.5, 9.0)]; + [path lineToPoint:NSMakePoint(5.5, 8.0)]; + [path lineToPoint:NSMakePoint(1.0, 3.5)]; + [path lineToPoint:NSMakePoint(3.5, 1.0)]; + [path lineToPoint:NSMakePoint(8.0, 5.5)]; + [path lineToPoint:NSMakePoint(9.0, 4.5)]; + [path lineToPoint:NSMakePoint(6.5, 2.0)]; + [path closePath]; + [NSGraphicsContext saveGraphicsState]; + [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; + [path fill]; + [NSGraphicsContext restoreGraphicsState]; + [cursorFill setFill]; + path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(13.0, 3.0)]; + [path lineToPoint:NSMakePoint(13.0, 7.0)]; + [path lineToPoint:NSMakePoint(11.5, 5.5)]; + [path lineToPoint:NSMakePoint(9.0, 8.0)]; + [path lineToPoint:NSMakePoint(13.5, 12.5)]; + [path lineToPoint:NSMakePoint(12.5, 13.5)]; + [path lineToPoint:NSMakePoint(8.0, 9.0)]; + [path lineToPoint:NSMakePoint(5.5, 11.5)]; + [path lineToPoint:NSMakePoint(7.0, 13.0)]; + [path lineToPoint:NSMakePoint(3.0, 13.0)]; + [path lineToPoint:NSMakePoint(3.0, 9.0)]; + [path lineToPoint:NSMakePoint(4.5, 10.5)]; + [path lineToPoint:NSMakePoint(7.0, 8.0)]; + [path lineToPoint:NSMakePoint(2.5, 3.5)]; + [path lineToPoint:NSMakePoint(3.5, 2.5)]; + [path lineToPoint:NSMakePoint(8.0, 7.0)]; + [path lineToPoint:NSMakePoint(10.5, 4.5)]; + [path lineToPoint:NSMakePoint(9.0, 3.0)]; + [path closePath]; + [path fill]; + }]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"resizeDiagonal135Cursor"]; + } + + hotspot = NSMakePoint(7.0, 6.0); + + image = [[NSImage alloc] initPDFWithSize:NSMakeSize(18.0, 18.0) drawingHandler:^(NSRect dstRect){ + [cursorOutline set]; + NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(1.0, 5.0, 13.0, 13.0)]; + [path moveToPoint:NSMakePoint(14.5, 1.5)]; + [path lineToPoint:NSMakePoint(17.5, 4.5)]; + [path lineToPoint:NSMakePoint(12.5, 9.5)]; + [path lineToPoint:NSMakePoint(9.5, 6.5)]; + [path closePath]; + [NSGraphicsContext saveGraphicsState]; + [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; + [path fill]; + [NSGraphicsContext restoreGraphicsState]; + [cursorFill setStroke]; + path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(3.0, 7.0, 9.0, 9.0)]; + [path setLineWidth:2.0]; + [path stroke]; + path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(15.5, 3.5)]; + [path lineToPoint:NSMakePoint(10.5, 8.5)]; + [path setLineWidth:2.5]; + [path stroke]; + path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(5.0, 11.5)]; + [path lineToPoint:NSMakePoint(10.0, 11.5)]; + [path moveToPoint:NSMakePoint(7.5, 9.0)]; + [path lineToPoint:NSMakePoint(7.5, 14.0)]; + [path setLineWidth:1.0]; + [path stroke]; + }]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"zoomInCursor"]; + + image = [[NSImage alloc] initPDFWithSize:NSMakeSize(18.0, 18.0) drawingHandler:^(NSRect dstRect){ + [cursorOutline set]; + NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(1.0, 5.0, 13.0, 13.0)]; + [path moveToPoint:NSMakePoint(14.5, 1.5)]; + [path lineToPoint:NSMakePoint(17.5, 4.5)]; + [path lineToPoint:NSMakePoint(12.5, 9.5)]; + [path lineToPoint:NSMakePoint(9.5, 6.5)]; + [path closePath]; + [NSGraphicsContext saveGraphicsState]; + [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; + [path fill]; + [NSGraphicsContext restoreGraphicsState]; + [cursorFill setStroke]; + path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(3.0, 7.0, 9.0, 9.0)]; + [path setLineWidth:2.0]; + [path stroke]; + path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(15.5, 3.5)]; + [path lineToPoint:NSMakePoint(10.5, 8.5)]; + [path setLineWidth:2.5]; + [path stroke]; + path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(5.0, 11.5)]; + [path lineToPoint:NSMakePoint(10.0, 11.5)]; + [path setLineWidth:1.0]; + [path stroke]; + }]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"zoomOutCursor"]; + + hotspot = NSMakePoint(9.0, 8.0); + + image = [[NSImage alloc] initPDFWithSize:NSMakeSize(18.0, 16.0) drawingHandler:^(NSRect dstRect){ + [cursorOutline set]; + NSBezierPath *path = [NSBezierPath bezierPathWithRect:NSMakeRect(1.0, 2.0, 16.0, 11.0)]; + [path appendBezierPathWithOvalInRect:NSMakeRect(4.7, 6.7, 8.6, 8.6)]; + [NSGraphicsContext saveGraphicsState]; + [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; + [path fill]; + [NSGraphicsContext restoreGraphicsState]; + [cursorFill set]; + path = [NSBezierPath bezierPathWithRect:NSMakeRect(2.0, 3.0, 14.0, 9.0)]; + [path appendBezierPathWithOvalInRect:NSMakeRect(6.0, 8.0, 6.0, 6.0)]; + [path fill]; + [cursorOutline set]; + [[NSBezierPath bezierPathWithOvalInRect:NSMakeRect(5.3, 4.3, 7.4, 7.4)] stroke]; + path = [NSBezierPath bezierPath]; + [path appendBezierPathWithArcWithCenter:NSMakePoint(9.0, 8.0) radius:1.8 startAngle:45.0 endAngle:225.0]; + [path closePath]; + [path fill]; + }]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"cameraCursor"]; + + NSSize size = [[[NSCursor openHandCursor] image] size]; + + if (NSEqualSizes(size, NSMakeSize(32.0, 32.0))) { + + image = [[NSImage alloc] initPDFWithSize:size drawingHandler:^(NSRect dstRect){ + [cursorFill setFill]; + [NSGraphicsContext saveGraphicsState]; + [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; + [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; + [NSGraphicsContext restoreGraphicsState]; + [[[NSCursor openHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, 32.0, 32.0) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; + }]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:[[self openHandCursor] hotSpot]]; + [customCursors setObject:cursor forKey:@"openHandBarCursor"]; + + image = [[NSImage alloc] initPDFWithSize:size drawingHandler:^(NSRect dstRect){ + [cursorFill setFill]; + [NSGraphicsContext saveGraphicsState]; + [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; + [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; + [NSGraphicsContext restoreGraphicsState]; + [[[NSCursor closedHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, 32.0, 32.0) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; + }]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:[[self closedHandCursor] hotSpot]]; + [customCursors setObject:cursor forKey:@"closedHandBarCursor"]; + } else { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameResizeDiagonal45Cursor] copy]; - resizeDiagonal45Cursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(8.0, 8.0)]; + + image = [[NSImage alloc] initPDFWithSize:size drawingHandler:^(NSRect dstRect){ + [cursorFill setFill]; + [NSBezierPath fillRect:NSMakeRect(0.0, 9.0 / 16.0 * size.height, size.width, 3.0 / 16.0 * size.height)]; + [[[NSCursor openHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, size.width, size.height) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; + }]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:[[self openHandCursor] hotSpot]]; + [customCursors setObject:cursor forKey:@"openHandBarCursor"]; + + image = [[NSImage alloc] initPDFWithSize:size drawingHandler:^(NSRect dstRect){ + [cursorFill setFill]; + [NSBezierPath fillRect:NSMakeRect(0.0, 6.0 / 16.0 * size.height, size.width, 3.0 / 16.0 * size.height)]; + [[[NSCursor closedHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, size.width, size.height) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; + }]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:[[self closedHandCursor] hotSpot]]; + [customCursors setObject:cursor forKey:@"closedHandBarCursor"]; + } + + hotspot = [[self arrowCursor] hotSpot]; + + image = [NSImage cursorTextNoteImageWithOutlineColor:cursorOutline fillColor:cursorFill]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"textNoteCursor"]; + + image = [NSImage cursorAnchoredNoteImageWithOutlineColor:cursorOutline fillColor:cursorFill]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"anchoredNoteCursor"]; + + image = [NSImage cursorCircleNoteImageWithOutlineColor:cursorOutline fillColor:cursorFill]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:[[self arrowCursor] hotSpot]]; + [customCursors setObject:cursor forKey:@"circleNoteCursor"]; + + image = [NSImage cursorSquareNoteImageWithOutlineColor:cursorOutline fillColor:cursorFill]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"squareNoteCursor"]; + + image = [NSImage cursorHighlightNoteImageWithOutlineColor:cursorOutline fillColor:cursorFill]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"highlightNoteCursor"]; + + image = [NSImage cursorUnderlineNoteImageWithOutlineColor:cursorOutline fillColor:cursorFill]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"underlineNoteCursor"]; + + image = [NSImage cursorStrikeOutNoteImageWithOutlineColor:cursorOutline fillColor:cursorFill]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"strikeOutNoteCursor"]; + + image = [NSImage cursorLineNoteImageWithOutlineColor:cursorOutline fillColor:cursorFill]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"lineNoteCursor"]; + + image = [NSImage cursorInkNoteImageWithOutlineColor:cursorOutline fillColor:cursorFill]; + cursor = [[NSCursor alloc] initWithImage:image hotSpot:hotspot]; + [customCursors setObject:cursor forKey:@"inkNoteCursor"]; } - return resizeDiagonal45Cursor; + + return customCursors; } ++ (NSCursor *)zoomInCursor { + return [[self customCursors] objectForKey:@"zoomInCursor"]; +} + ++ (NSCursor *)zoomOutCursor { + return [[self customCursors] objectForKey:@"zoomOutCursor"]; +} + ++ (NSCursor *)resizeDiagonal45Cursor { + if ([self respondsToSelector:@selector(_windowResizeNorthEastSouthWestCursor)]) { + return [NSCursor _windowResizeNorthEastSouthWestCursor]; + } else { + return [[self customCursors] objectForKey:@"resizeDiagonal45Cursor"]; + } +} + + (NSCursor *)resizeDiagonal135Cursor { - static NSCursor *resizeDiagonal135Cursor = nil; - if (nil == resizeDiagonal135Cursor) { - if ([self respondsToSelector:@selector(_windowResizeNorthWestSouthEastCursor)]) { - resizeDiagonal135Cursor = [NSCursor _windowResizeNorthWestSouthEastCursor]; - } else { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameResizeDiagonal135Cursor] copy]; - resizeDiagonal135Cursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(8.0, 8.0)]; - } + if ([self respondsToSelector:@selector(_windowResizeNorthWestSouthEastCursor)]) { + return [NSCursor _windowResizeNorthWestSouthEastCursor]; + } else { + return [[self customCursors] objectForKey:@"resizeDiagonal135Cursor"]; } - return resizeDiagonal135Cursor; } + (NSCursor *)cameraCursor { - static NSCursor *cameraCursor = nil; - if (nil == cameraCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameCameraCursor] copy]; - cameraCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(9.0, 8.0)]; - } - return cameraCursor; + return [[self customCursors] objectForKey:@"cameraCursor"]; } + (NSCursor *)openHandBarCursor { - static NSCursor *openHandBarCursor = nil; - if (nil == openHandBarCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameOpenHandBarCursor] copy]; - openHandBarCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:[[self openHandCursor] hotSpot]]; - } - return openHandBarCursor; + return [[self customCursors] objectForKey:@"openHandBarCursor"]; } + (NSCursor *)closedHandBarCursor { - static NSCursor *closedHandBarCursor = nil; - if (nil == closedHandBarCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameClosedHandBarCursor] copy]; - closedHandBarCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:[[self closedHandCursor] hotSpot]]; - } - return closedHandBarCursor; + return [[self customCursors] objectForKey:@"closedHandBarCursor"]; } + (NSCursor *)textNoteCursor { - static NSCursor *textNoteCursor = nil; - if (nil == textNoteCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameTextNoteCursor] copy]; - textNoteCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:[[self arrowCursor] hotSpot]]; - } - return textNoteCursor; + return [[self customCursors] objectForKey:@"textNoteCursor"]; } + (NSCursor *)anchoredNoteCursor { - static NSCursor *anchoredNoteCursor = nil; - if (nil == anchoredNoteCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameAnchoredNoteCursor] copy]; - anchoredNoteCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:[[self arrowCursor] hotSpot]]; - } - return anchoredNoteCursor; + return [[self customCursors] objectForKey:@"anchoredNoteCursor"]; } + (NSCursor *)circleNoteCursor { - static NSCursor *circleNoteCursor = nil; - if (nil == circleNoteCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameCircleNoteCursor] copy]; - circleNoteCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:[[self arrowCursor] hotSpot]]; - } - return circleNoteCursor; + return [[self customCursors] objectForKey:@"circleNoteCursor"]; } + (NSCursor *)squareNoteCursor { - static NSCursor *squareNoteCursor = nil; - if (nil == squareNoteCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameSquareNoteCursor] copy]; - squareNoteCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:[[self arrowCursor] hotSpot]]; - } - return squareNoteCursor; + return [[self customCursors] objectForKey:@"squareNoteCursor"]; } + (NSCursor *)highlightNoteCursor { - static NSCursor *highlightNoteCursor = nil; - if (nil == highlightNoteCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameHighlightNoteCursor] copy]; - highlightNoteCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:[[self arrowCursor] hotSpot]]; - } - return highlightNoteCursor; + return [[self customCursors] objectForKey:@"highlightNoteCursor"]; } + (NSCursor *)underlineNoteCursor { - static NSCursor *underlineNoteCursor = nil; - if (nil == underlineNoteCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameUnderlineNoteCursor] copy]; - underlineNoteCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:[[self arrowCursor] hotSpot]]; - } - return underlineNoteCursor; + return [[self customCursors] objectForKey:@"underlineNoteCursor"]; } + (NSCursor *)strikeOutNoteCursor { - static NSCursor *strikeOutNoteCursor = nil; - if (nil == strikeOutNoteCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameStrikeOutNoteCursor] copy]; - strikeOutNoteCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:[[self arrowCursor] hotSpot]]; - } - return strikeOutNoteCursor; + return [[self customCursors] objectForKey:@"strikeOutNoteCursor"]; } + (NSCursor *)lineNoteCursor { - static NSCursor *lineNoteCursor = nil; - if (nil == lineNoteCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameLineNoteCursor] copy]; - lineNoteCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:[[self arrowCursor] hotSpot]]; - } - return lineNoteCursor; + return [[self customCursors] objectForKey:@"lineNoteCursor"]; } + (NSCursor *)inkNoteCursor { - static NSCursor *inkNoteCursor = nil; - if (nil == inkNoteCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameInkNoteCursor] copy]; - inkNoteCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:[[self arrowCursor] hotSpot]]; - } - return inkNoteCursor; + return [[self customCursors] objectForKey:@"inkNoteCursor"]; } + (NSCursor *)emptyCursor { @@ -294,8 +542,8 @@ [laserPointerWindow setFrame:SKRectFromCenterAndSize(p, [laserPointerWindow frame].size) display:YES]; } else { NSImage *image = [self image]; - NSNumber *size = [[[NSUserDefaults alloc] initWithSuiteName:@"com.apple.universalaccess"] objectForKey:@"mouseDriverCursorSize"]; - CGFloat s = 2.0 * round(0.5 * (size ? [size doubleValue] : 1.0) * [image size].width); + CGFloat size = [universalaccessDefaults() doubleForKey:@"mouseDriverCursorSize"]; + CGFloat s = 2.0 * round(0.5 * (size > 0.0 ? size : 1.0) * [image size].width); laserPointerWindow = [[SKAnimatedBorderlessWindow alloc] initWithContentRect:SKRectFromCenterAndSquareSize(p, s)]; [laserPointerWindow setLevel:(NSWindowLevel)kCGCursorWindowLevel]; [laserPointerWindow addImageViewWithImage:image]; Modified: trunk/NSImage_SKExtensions.h =================================================================== --- trunk/NSImage_SKExtensions.h 2024-07-25 16:44:49 UTC (rev 14397) +++ trunk/NSImage_SKExtensions.h 2024-07-26 15:02:00 UTC (rev 14398) @@ -189,23 +189,6 @@ extern NSString *SKImageNameTextAlignCenter; extern NSString *SKImageNameTextAlignRight; -extern NSString *SKImageNameResizeDiagonal45Cursor; -extern NSString *SKImageNameResizeDiagonal135Cursor; -extern NSString *SKImageNameZoomInCursor; -extern NSString *SKImageNameZoomOutCursor; -extern NSString *SKImageNameCameraCursor; -extern NSString *SKImageNameOpenHandBarCursor; -extern NSString *SKImageNameClosedHandBarCursor; -extern NSString *SKImageNameTextNoteCursor; -extern NSString *SKImageNameAnchoredNoteCursor; -extern NSString *SKImageNameCircleNoteCursor; -extern NSString *SKImageNameSquareNoteCursor; -extern NSString *SKImageNameHighlightNoteCursor; -extern NSString *SKImageNameUnderlineNoteCursor; -extern NSString *SKImageNameStrikeOutNoteCursor; -extern NSString *SKImageNameLineNoteCursor; -extern NSString *SKImageNameInkNoteCursor; - extern NSString *SKImageNameRemoteStateResize; extern NSString *SKImageNameRemoteStateScroll; @@ -215,6 +198,8 @@ + (NSImage *)imageWithSize:(NSSize)size drawingHandler:(BOOL (^)(NSRect dstRect))drawingHandler; +- (instancetype)initPDFWithSize:(NSSize)size drawingHandler:(void (^)(NSRect dstRect))drawingHandler; + // 0=red, 1=orange, 2=yellow, 3=green, 4=blue, 5=indigo, 6=violet + (NSImage *)laserPointerImageWithColor:(NSInteger)color; @@ -226,6 +211,16 @@ + (void)makeImages; ++ (NSImage *)cursorTextNoteImageWithOutlineColor:(NSColor *)outlineColor fillColor:(NSColor *)fillColor; ++ (NSImage *)cursorAnchoredNoteImageWithOutlineColor:(NSColor *)outlineColor fillColor:(NSColor *)fillColor; ++ (NSImage *)cursorCircleNoteImageWithOutlineColor:(NSColor *)outlineColor fillColor:(NSColor *)fillColor; ++ (NSImage *)cursorSquareNoteImageWithOutlineColor:(NSColor *)outlineColor fillColor:(NSColor *)fillColor; ++ (NSImage *)cursorHighlightNoteImageWithOutlineColor:(NSColor *)outlineColor fillColor:(NSColor *)fillColor; ++ (NSImage *)cursorUnderlineNoteImageWithOutlineColor:(NSColor *)outlineColor fillColor:(NSColor *)fillColor; ++ (NSImage *)cursorStrikeOutNoteImageWithOutlineColor:(NSColor *)outlineColor fillColor:(NSColor *)fillColor; ++ (NSImage *)cursorLineNoteImageWithOutlineColor:(NSColor *)outlineColor fillColor:(NSColor *)fillColor; ++ (NSImage *)cursorInkNoteImageWithOutlineColor:(NSColor *)outlineColor fillColor:(NSColor *)fillColor; + @end NS_ASSUME_NONNULL_END Modified: trunk/NSImage_SKExtensions.m =================================================================== --- trunk/NSImage_SKExtensions.m 2024-07-25 16:44:49 UTC (rev 14397) +++ trunk/NSImage_SKExtensions.m 2024-07-26 15:02:00 UTC (rev 14398) @@ -193,23 +193,6 @@ NSString *SKImageNameTextAlignCenter = @"TextAlignCenter"; NSString *SKImageNameTextAlignRight = @"TextAlignRight"; -NSString *SKImageNameResizeDiagonal45Cursor = @"ResizeDiagonal45Cursor"; -NSString *SKImageNameResizeDiagonal135Cursor = @"ResizeDiagonal135Cursor"; -NSString *SKImageNameZoomInCursor = @"ZoomInCursor"; -NSString *SKImageNameZoomOutCursor = @"ZoomOutCursor"; -NSString *SKImageNameCameraCursor = @"CameraCursor"; -NSString *SKImageNameTextNoteCursor = @"TextNoteCursor"; -NSString *SKImageNameAnchoredNoteCursor = @"AnchoredNoteCursor"; -NSString *SKImageNameCircleNoteCursor = @"CircleNoteCursor"; -NSString *SKImageNameSquareNoteCursor = @"SquareNoteCursor"; -NSString *SKImageNameHighlightNoteCursor = @"HighlightNoteCursor"; -NSString *SKImageNameUnderlineNoteCursor = @"UnderlineNoteCursor"; -NSString *SKImageNameStrikeOutNoteCursor = @"StrikeOutNoteCursor"; -NSString *SKImageNameLineNoteCursor = @"LineNoteCursor"; -NSString *SKImageNameInkNoteCursor = @"InkNoteCursor"; -NSString *SKImageNameOpenHandBarCursor = @"OpenHandBarCursor"; -NSString *SKImageNameClosedHandBarCursor = @"ClosedHandBarCursor"; - NSString *SKImageNameRemoteStateResize = @"RemoteStateResize"; NSString *SKImageNameRemoteStateScroll = @"RemoteStateScroll"; @@ -1610,247 +1593,17 @@ [[self imageNamed:SKImageNameTextAlignRight] setAccessibilityDescription:NSLocalizedString(@"align right", @"Accessibility description")]; } -+ (void)makeCursorImages { - - NSUserDefaults *prefs = [[NSUserDefaults alloc] initWithSuiteName:@"com.apple.universalaccess"]; - NSColor *cursorOutline = [NSColor whiteColor]; - NSColor *cursorFill = [NSColor blackColor]; - if ([prefs boolForKey:@"cursorIsCustomized"]) { - NSDictionary *color = [prefs dictionaryForKey:@"cursorOutline"]; - if ([color count] == 4) - cursorOutline = [NSColor colorWithSRGBRed:[[color objectForKey:@"red"] doubleValue] green:[[color objectForKey:@"green"] doubleValue] blue:[[color objectForKey:@"blue"] doubleValue] alpha:[[color objectForKey:@"alpha"] doubleValue]] ?: cursorOutline; - color = [prefs dictionaryForKey:@"cursorFill"]; - if ([color count] == 4) - cursorFill = [NSColor colorWithSRGBRed:[[color objectForKey:@"red"] doubleValue] green:[[color objectForKey:@"green"] doubleValue] blue:[[color objectForKey:@"blue"] doubleValue] alpha:[[color objectForKey:@"alpha"] doubleValue]] ?: cursorFill; - } - - MAKE_VECTOR_IMAGE(SKImageNameResizeDiagonal45Cursor, NO, 16.0, 16.0, - [cursorOutline setFill]; - NSBezierPath *path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(2.0, 2.0)]; - [path lineToPoint:NSMakePoint(9.5, 2.0)]; - [path lineToPoint:NSMakePoint(7.0, 4.5)]; - [path lineToPoint:NSMakePoint(8.0, 5.5)]; - [path lineToPoint:NSMakePoint(12.5, 1.0)]; - [path lineToPoint:NSMakePoint(15.0, 3.5)]; - [path lineToPoint:NSMakePoint(10.5, 8.0)]; - [path lineToPoint:NSMakePoint(11.5, 9.0)]; - [path lineToPoint:NSMakePoint(14.0, 6.5)]; - [path lineToPoint:NSMakePoint(14.0, 14.0)]; - [path lineToPoint:NSMakePoint(6.5, 14.0)]; - [path lineToPoint:NSMakePoint(9.0, 11.5)]; - [path lineToPoint:NSMakePoint(8.0, 10.5)]; - [path lineToPoint:NSMakePoint(3.5, 15.0)]; - [path lineToPoint:NSMakePoint(1.0, 12.5)]; - [path lineToPoint:NSMakePoint(5.5, 8.0)]; - [path lineToPoint:NSMakePoint(4.5, 7.0)]; - [path lineToPoint:NSMakePoint(2.0, 9.5)]; - [path closePath]; - [NSGraphicsContext saveGraphicsState]; - [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; - [path fill]; - [NSGraphicsContext restoreGraphicsState]; - [cursorFill setFill]; - path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(3.0, 3.0)]; - [path lineToPoint:NSMakePoint(7.0, 3.0)]; - [path lineToPoint:NSMakePoint(5.5, 4.5)]; - [path lineToPoint:NSMakePoint(8.0, 7.0)]; - [path lineToPoint:NSMakePoint(12.5, 2.5)]; - [path lineToPoint:NSMakePoint(13.5, 3.5)]; - [path lineToPoint:NSMakePoint(9.0, 8.0)]; - [path lineToPoint:NSMakePoint(11.5, 10.5)]; - [path lineToPoint:NSMakePoint(13.0, 9.0)]; - [path lineToPoint:NSMakePoint(13.0, 13.0)]; - [path lineToPoint:NSMakePoint(9.0, 13.0)]; - [path lineToPoint:NSMakePoint(10.5, 11.5)]; - [path lineToPoint:NSMakePoint(8.0, 9.0)]; - [path lineToPoint:NSMakePoint(3.5, 13.5)]; - [path lineToPoint:NSMakePoint(2.5, 12.5)]; - [path lineToPoint:NSMakePoint(7.0, 8.0)]; - [path lineToPoint:NSMakePoint(4.5, 5.5)]; - [path lineToPoint:NSMakePoint(3.0, 7.0)]; - [path closePath]; - [path fill]; - ); - - MAKE_VECTOR_IMAGE(SKImageNameResizeDiagonal135Cursor, NO, 16.0, 16.0, - [cursorOutline setFill]; - NSBezierPath *path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(14.0, 2.0)]; - [path lineToPoint:NSMakePoint(14.0, 9.5)]; - [path lineToPoint:NSMakePoint(11.5, 7.0)]; - [path lineToPoint:NSMakePoint(10.5, 8.0)]; - [path lineToPoint:NSMakePoint(15.0, 12.5)]; - [path lineToPoint:NSMakePoint(12.5, 15.0)]; - [path lineToPoint:NSMakePoint(8.0, 10.5)]; - [path lineToPoint:NSMakePoint(7.0, 11.5)]; - [path lineToPoint:NSMakePoint(9.5, 14.0)]; - [path lineToPoint:NSMakePoint(2.0, 14.0)]; - [path lineToPoint:NSMakePoint(2.0, 6.5)]; - [path lineToPoint:NSMakePoint(4.5, 9.0)]; - [path lineToPoint:NSMakePoint(5.5, 8.0)]; - [path lineToPoint:NSMakePoint(1.0, 3.5)]; - [path lineToPoint:NSMakePoint(3.5, 1.0)]; - [path lineToPoint:NSMakePoint(8.0, 5.5)]; - [path lineToPoint:NSMakePoint(9.0, 4.5)]; - [path lineToPoint:NSMakePoint(6.5, 2.0)]; - [path closePath]; - [NSGraphicsContext saveGraphicsState]; - [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; - [path fill]; - [NSGraphicsContext restoreGraphicsState]; - [cursorFill setFill]; - path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(13.0, 3.0)]; - [path lineToPoint:NSMakePoint(13.0, 7.0)]; - [path lineToPoint:NSMakePoint(11.5, 5.5)]; - [path lineToPoint:NSMakePoint(9.0, 8.0)]; - [path lineToPoint:NSMakePoint(13.5, 12.5)]; - [path lineToPoint:NSMakePoint(12.5, 13.5)]; - [path lineToPoint:NSMakePoint(8.0, 9.0)]; - [path lineToPoint:NSMakePoint(5.5, 11.5)]; - [path lineToPoint:NSMakePoint(7.0, 13.0)]; - [path lineToPoint:NSMakePoint(3.0, 13.0)]; - [path lineToPoint:NSMakePoint(3.0, 9.0)]; - [path lineToPoint:NSMakePoint(4.5, 10.5)]; - [path lineToPoint:NSMakePoint(7.0, 8.0)]; - [path lineToPoint:NSMakePoint(2.5, 3.5)]; - [path lineToPoint:NSMakePoint(3.5, 2.5)]; - [path lineToPoint:NSMakePoint(8.0, 7.0)]; - [path lineToPoint:NSMakePoint(10.5, 4.5)]; - [path lineToPoint:NSMakePoint(9.0, 3.0)]; - [path closePath]; - [path fill]; - ); - - MAKE_VECTOR_IMAGE(SKImageNameZoomInCursor, NO, 18.0, 18.0, - [cursorOutline set]; - NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(1.0, 5.0, 13.0, 13.0)]; - [path moveToPoint:NSMakePoint(14.5, 1.5)]; - [path lineToPoint:NSMakePoint(17.5, 4.5)]; - [path lineToPoint:NSMakePoint(12.5, 9.5)]; - [path lineToPoint:NSMakePoint(9.5, 6.5)]; - [path closePath]; - [NSGraphicsContext saveGraphicsState]; - [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; - [path fill]; - [NSGraphicsContext restoreGraphicsState]; - [cursorFill setStroke]; - path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(3.0, 7.0, 9.0, 9.0)]; - [path setLineWidth:2.0]; - [path stroke]; - path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(15.5, 3.5)]; - [path lineToPoint:NSMakePoint(10.5, 8.5)]; - [path setLineWidth:2.5]; - [path stroke]; - path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(5.0, 11.5)]; - [path lineToPoint:NSMakePoint(10.0, 11.5)]; - [path moveToPoint:NSMakePoint(7.5, 9.0)]; - [path lineToPoint:NSMakePoint(7.5, 14.0)]; - [path setLineWidth:1.0]; - [path stroke]; - ); - - MAKE_VECTOR_IMAGE(SKImageNameZoomOutCursor, NO, 18.0, 18.0, - [cursorOutline set]; - NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(1.0, 5.0, 13.0, 13.0)]; - [path moveToPoint:NSMakePoint(14.5, 1.5)]; - [path lineToPoint:NSMakePoint(17.5, 4.5)]; - [path lineToPoint:NSMakePoint(12.5, 9.5)]; - [path lineToPoint:NSMakePoint(9.5, 6.5)]; - [path closePath]; - [NSGraphicsContext saveGraphicsState]; - [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; - [path fill]; - [NSGraphicsContext restoreGraphicsState]; - [cursorFill setStroke]; - path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(3.0, 7.0, 9.0, 9.0)]; - [path setLineWidth:2.0]; - [path stroke]; - path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(15.5, 3.5)]; - [path lineToPoint:NSMakePoint(10.5, 8.5)]; - [path setLineWidth:2.5]; - [path stroke]; - path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(5.0, 11.5)]; - [path lineToPoint:NSMakePoint(10.0, 11.5)]; - [path setLineWidth:1.0]; - [path stroke]; - ); - - MAKE_VECTOR_IMAGE(SKImageNameCameraCursor, NO, 18.0, 16.0, - [cursorOutline set]; - NSBezierPath *path = [NSBezierPath bezierPathWithRect:NSMakeRect(1.0, 2.0, 16.0, 11.0)]; - [path appendBezierPathWithOvalInRect:NSMakeRect(4.7, 6.7, 8.6, 8.6)]; - [NSGraphicsContext saveGraphicsState]; - [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; - [path fill]; - [NSGraphicsContext restoreGraphicsState]; - [cursorFill set]; - path = [NSBezierPath bezierPathWithRect:NSMakeRect(2.0, 3.0, 14.0, 9.0)]; - [path appendBezierPathWithOvalInRect:NSMakeRect(6.0, 8.0, 6.0, 6.0)]; - [path fill]; - [cursorOutline set]; - [[NSBezierPath bezierPathWithOvalInRect:NSMakeRect(5.3, 4.3, 7.4, 7.4)] stroke]; - path = [NSBezierPath bezierPath]; - [path appendBezierPathWithArcWithCenter:NSMakePoint(9.0, 8.0) radius:1.8 startAngle:45.0 endAngle:225.0]; - [path closePath]; - [path fill]; - ); - - NSSize size = [[[NSCursor openHandCursor] image] size]; - - if (NSEqualSizes(size, NSMakeSize(32.0, 32.0))) { - - MAKE_VECTOR_IMAGE(SKImageNameOpenHandBarCursor, NO, 32.0, 32.0, - [cursorFill setFill]; - [NSGraphicsContext saveGraphicsState]; - [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; - [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; - [NSGraphicsContext restoreGraphicsState]; - [[[NSCursor openHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, 32.0, 32.0) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; - ); - - MAKE_VECTOR_IMAGE(SKImageNameClosedHandBarCursor, NO, 32.0, 32.0, - [cursorFill setFill]; - [NSGraphicsContext saveGraphicsState]; - [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; - [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; - [NSGraphicsContext restoreGraphicsState]; - [[[NSCursor closedHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, 32.0, 32.0) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; - ); - - } else { - - MAKE_VECTOR_IMAGE(SKImageNameOpenHandBarCursor, NO, size.width, size.width, - [cursorFill setFill]; - [NSBezierPath fillRect:NSMakeRect(0.0, 9.0 / 16.0 * size.height, size.width, 3.0 / 16.0 * size.height)]; - [[[NSCursor openHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, size.width, size.height) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; - ); - - MAKE_VECTOR_IMAGE(SKImageNameClosedHandBarCursor, NO, size.width, size.width, - [cursorFill setFill]; - [NSBezierPath fillRect:NSMakeRect(0.0, 6.0 / 16.0 * size.height, size.width, 3.0 / 16.0 * size.height)]; - [[[NSCursor closedHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, size.width, size.height) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; - ); - - } - -#define MAKE_NOTE_CURSOR_IMAGE(name) \ - MAKE_VECTOR_IMAGE(SKImageName ## name ## NoteCursor, NO, 24.0, 42.0, \ +#define DEFINE_NOTE_CURSOR_IMAGE(name) \ ++ (NSImage *)cursor ## name ## NoteImageWithOutlineColor:(NSColor *)outlineColor fillColor:(NSColor *)fillColor { \ + return [[NSImage alloc] initPDFWithSize:NSMakeSize(24.0, 42.0) drawingHandler:^(NSRect dstRect){ \ drawArrowCursor(); \ translate(2.0, 2.0); \ - draw ## name ## NoteBackground(cursorOutline); \ - draw ## name ## Note(cursorFill); \ - ) + draw ## name ## NoteBackground(outlineColor); \ + draw ## name ## Note(fillColor); \ + }]; \ +} - APPLY_NOTE_TYPES(MAKE_NOTE_CURSOR_IMAGE); - -} +APPLY_NOTE_TYPES(DEFINE_NOTE_CURSOR_IMAGE); + (void)makeRemoteStateImages { @@ -1945,7 +1698,6 @@ [self makeTouchBarImages]; [self makeAdornImages]; [self makeTextAlignImages]; - [self makeCursorImages]; [self makeRemoteStateImages]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-25 16:44:51
|
Revision: 14397 http://sourceforge.net/p/skim-app/code/14397 Author: hofman Date: 2024-07-25 16:44:49 +0000 (Thu, 25 Jul 2024) Log Message: ----------- observe NSUserDefaults instead of NSUserDefaultsController, this should work already for a long time Modified Paths: -------------- trunk/NSUserDefaultsController_SKExtensions.h trunk/NSUserDefaultsController_SKExtensions.m trunk/SKApplicationController.m trunk/SKBasePDFView.m trunk/SKColorList.m trunk/SKColorPicker.m trunk/SKDisplayPreferences.m trunk/SKFileUpdateChecker.m trunk/SKMainToolbarController.m trunk/SKMainWindowController.m trunk/SKNoteTextView.m trunk/SKNoteWindowController.m trunk/SKPDFView.m trunk/SKSnapshotWindowController.m trunk/SKThumbnailImageView.m Modified: trunk/NSUserDefaultsController_SKExtensions.h =================================================================== --- trunk/NSUserDefaultsController_SKExtensions.h 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/NSUserDefaultsController_SKExtensions.h 2024-07-25 16:44:49 UTC (rev 14397) @@ -41,10 +41,6 @@ @interface NSUserDefaultsController (SKExtensions) -- (void)addObserver:(NSObject *)anObserver forKey:(NSString *)key context:(void *)context; -- (void)removeObserver:(NSObject *)anObserver forKey:(NSString *)key context:(void *)context; -- (void)addObserver:(NSObject *)anObserver forKeys:(NSArray<NSString *> *)keys context:(void *)context; -- (void)removeObserver:(NSObject *)anObserver forKeys:(NSArray<NSString *> *)keys context:(void *)context; - (void)revertToInitialValuesForKeys:(NSArray<NSString *> *)keys; @end Modified: trunk/NSUserDefaultsController_SKExtensions.m =================================================================== --- trunk/NSUserDefaultsController_SKExtensions.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/NSUserDefaultsController_SKExtensions.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -42,24 +42,6 @@ @implementation NSUserDefaultsController (SKExtensions) -- (void)addObserver:(NSObject *)anObserver forKey:(NSString *)key context:(void *)context { - [self addObserver:anObserver forKeyPath:VALUES_KEY_PATH(key) options:0 context:context]; -} - -- (void)removeObserver:(NSObject *)anObserver forKey:(NSString *)key context:(void *)context { - [self removeObserver:anObserver forKeyPath:VALUES_KEY_PATH(key) context:context]; -} - -- (void)addObserver:(NSObject *)anObserver forKeys:(NSArray *)keys context:(void *)context { - for (NSString *key in keys) - [self addObserver:anObserver forKey:key context:context]; -} - -- (void)removeObserver:(NSObject *)anObserver forKeys:(NSArray *)keys context:(void *)context { - for (NSString *key in keys) - [self removeObserver:anObserver forKey:key context:context]; -} - - (void)revertToInitialValuesForKeys:(NSArray *)keys { for (NSString *key in keys) [[self values] setValue:[[self initialValues] objectForKey:key] forKey:key]; Modified: trunk/SKApplicationController.m =================================================================== --- trunk/SKApplicationController.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKApplicationController.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -69,7 +69,6 @@ #import "NSValueTransformer_SKExtensions.h" #import "SKAnimatedBorderlessWindow.h" #import "NSGraphics_SKExtensions.h" -#import "NSUserDefaultsController_SKExtensions.h" #import "NSColor_SKExtensions.h" #import "SKNoteOutlineView.h" #import "NSView_SKExtensions.h" @@ -210,7 +209,7 @@ [NSValueTransformer registerCustomTransformers]; [[NSAppleEventManager sharedAppleEventManager] setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL]; [PDFPage setUsesSequentialPageNumbering:[[NSUserDefaults standardUserDefaults] boolForKey:SKSequentialPageNumberingKey]]; - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKey:SKSequentialPageNumberingKey context:&SKApplicationControllerDefaultsObservationContext]; + [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:SKSequentialPageNumberingKey options:0 context:&SKApplicationControllerDefaultsObservationContext]; } - (void)applicationDidFinishLaunching:(NSNotification *)aNotification{ @@ -411,7 +410,7 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if (context == &SKApplicationControllerDefaultsObservationContext) { - if ([[keyPath substringFromIndex:7] isEqualToString:SKSequentialPageNumberingKey]) { + if ([keyPath isEqualToString:SKSequentialPageNumberingKey]) { [PDFPage setUsesSequentialPageNumbering:[[NSUserDefaults standardUserDefaults] boolForKey:SKSequentialPageNumberingKey]]; [[NSNotificationCenter defaultCenter] postNotificationName:SKPageLabelsChangedNotification object:nil]; } Modified: trunk/SKBasePDFView.m =================================================================== --- trunk/SKBasePDFView.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKBasePDFView.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -40,7 +40,6 @@ #import "SKStringConstants.h" #import "NSGeometry_SKExtensions.h" #import "NSGraphics_SKExtensions.h" -#import "NSUserDefaultsController_SKExtensions.h" #import "NSEvent_SKExtensions.h" #import <SkimNotes/SkimNotes.h> #import "PDFAnnotation_SKExtensions.h" @@ -90,7 +89,9 @@ [[self scrollView] setContentFilters:SKColorEffectFilters()]; - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeys:defaultKeysToObserve() context:&SKBasePDFViewDefaultsObservationContext]; + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in defaultKeysToObserve()) + [sud addObserver:self forKeyPath:key options:0 context:&SKBasePDFViewDefaultsObservationContext]; } - (instancetype)initWithFrame:(NSRect)frameRect { @@ -110,8 +111,11 @@ } - (void)dealloc { - @try { [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeys:defaultKeysToObserve() context:&SKBasePDFViewDefaultsObservationContext]; } - @catch (id e) {} + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in defaultKeysToObserve()) { + @try { [sud removeObserver:self forKeyPath:key context:&SKBasePDFViewDefaultsObservationContext]; } + @catch (id e) {} + } } - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { Modified: trunk/SKColorList.m =================================================================== --- trunk/SKColorList.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKColorList.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -38,7 +38,6 @@ #import "SKColorList.h" #import "SKStringConstants.h" -#import "NSUserDefaultsController_SKExtensions.h" #import "NSColor_SKExtensions.h" static char SKDefaultsObservationContext; @@ -59,7 +58,7 @@ [colorList setColor:color forKey:key]; } [(SKColorList *)colorList setEditable:NO]; - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:colorList forKey:SKSwatchColorsKey context:&SKDefaultsObservationContext]; + [[NSUserDefaults standardUserDefaults] addObserver:colorList forKeyPath:SKSwatchColorsKey options:0 context:&SKDefaultsObservationContext]; } return colorList; } Modified: trunk/SKColorPicker.m =================================================================== --- trunk/SKColorPicker.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKColorPicker.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -40,7 +40,6 @@ #import "SKColorCell.h" #import "SKStringConstants.h" #import "NSColor_SKExtensions.h" -#import "NSUserDefaultsController_SKExtensions.h" #define COLOR_IDENTIFIER @"color" @@ -74,13 +73,13 @@ [self setView:view]; - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKey:SKSwatchColorsKey context:&SKColorPickerDefaultsObservationContext]; + [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:SKSwatchColorsKey options:0 context:&SKColorPickerDefaultsObservationContext]; } return self; } - (void)dealloc { - @try { [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKey:SKSwatchColorsKey context:&SKColorPickerDefaultsObservationContext]; } + @try { [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:SKSwatchColorsKey context:&SKColorPickerDefaultsObservationContext]; } @catch (id e) {} } Modified: trunk/SKDisplayPreferences.m =================================================================== --- trunk/SKDisplayPreferences.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKDisplayPreferences.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -42,7 +42,6 @@ #import "NSGraphics_SKExtensions.h" #import "NSImage_SKExtensions.h" #import "NSUserDefaults_SKExtensions.h" -#import "NSUserDefaultsController_SKExtensions.h" #import "NSColor_SKExtensions.h" #import "NSValueTransformer_SKExtensions.h" #import "SKColorSwatch.h" @@ -64,10 +63,11 @@ - (void)dealloc { if (@available(macOS 10.14, *)) { - @try { - [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeys:@[SKBackgroundColorKey, SKFullScreenBackgroundColorKey, SKDarkBackgroundColorKey, SKDarkFullScreenBackgroundColorKey,] context:&SKDisplayPreferencesDefaultsObservationContext]; + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in @[SKBackgroundColorKey, SKFullScreenBackgroundColorKey, SKDarkBackgroundColorKey, SKDarkFullScreenBackgroundColorKey]) { + @try { [sud removeObserver:self forKeyPath:key context:&SKDisplayPreferencesDefaultsObservationContext]; } + @catch(id e) {} } - @catch(id e) {} } @try { [colorSwatch unbind:@"colors"]; @@ -102,7 +102,9 @@ [self updateBackgroundColors]; - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeys:@[SKBackgroundColorKey, SKFullScreenBackgroundColorKey, SKDarkBackgroundColorKey, SKDarkFullScreenBackgroundColorKey] context:&SKDisplayPreferencesDefaultsObservationContext]; + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in @[SKBackgroundColorKey, SKFullScreenBackgroundColorKey, SKDarkBackgroundColorKey, SKDarkFullScreenBackgroundColorKey]) + [sud addObserver:self forKeyPath:key options:0 context:&SKDisplayPreferencesDefaultsObservationContext]; [NSApp addObserver:self forKeyPath:@"effectiveAppearance" options:0 context:&SKDisplayPreferencesDefaultsObservationContext]; } } Modified: trunk/SKFileUpdateChecker.m =================================================================== --- trunk/SKFileUpdateChecker.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKFileUpdateChecker.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -70,7 +70,7 @@ // hidden pref to always auto update without first asking the user memset(&fucFlags, 0, sizeof(fucFlags)); fucFlags.autoUpdate = [[NSUserDefaults standardUserDefaults] boolForKey:SKAutoReloadFileUpdateKey]; - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKey:SKAutoCheckFileUpdateKey context:&SKFileUpdateCheckerObservationContext]; + [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:SKAutoCheckFileUpdateKey options:0 context:&SKFileUpdateCheckerObservationContext]; [document addObserver:self forKeyPath:@"fileURL" options:0 context:&SKFileUpdateCheckerObservationContext]; } return self; @@ -77,7 +77,7 @@ } - (void)dealloc { - @try { [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKey:SKAutoCheckFileUpdateKey context:&SKFileUpdateCheckerObservationContext]; } + @try { [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:SKAutoCheckFileUpdateKey context:&SKFileUpdateCheckerObservationContext]; } @catch (id) {} } Modified: trunk/SKMainToolbarController.m =================================================================== --- trunk/SKMainToolbarController.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKMainToolbarController.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -62,7 +62,6 @@ #import "PDFDocument_SKExtensions.h" #import "SKShareMenuController.h" #import "NSFont_SKExtensions.h" -#import "NSUserDefaultsController_SKExtensions.h" #define SKDocumentToolbarIdentifier @"SKDocumentToolbar" @@ -141,7 +140,7 @@ @synthesize mainController, backForwardButton, pageNumberField, previousNextPageButton, previousPageButton, nextPageButton, previousNextFirstLastPageButton, zoomInOutButton, zoomInActualOutButton, zoomActualButton, zoomFitButton, zoomSelectionButton, autoScalesButton, rotateLeftButton, rotateRightButton, rotateLeftRightButton, cropButton, fullScreenButton, presentationButton, leftPaneButton, rightPaneButton, splitPDFButton, toolModeButton, textNoteButton, circleNoteButton, markupNoteButton, lineNoteButton, singleTwoUpButton, continuousButton, displayModeButton, displayDirectionButton, displaysRTLButton, bookModeButton, pageBreaksButton, displayBoxButton, infoButton, colorsButton, fontsButton, linesButton, printButton, customizeButton, scaleField, noteButton, colorSwatch, pacerButton, pacerSpeedField, pacerSpeedStepper, shareButton; - (void)dealloc { - @try { [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKey:SKSwatchColorsKey context:&SKDefaultsObservationContext]; } + @try { [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:SKSwatchColorsKey context:&SKDefaultsObservationContext]; } @catch (id e) {} } @@ -176,7 +175,7 @@ [[mainController window] setToolbar:toolbar]; [self registerForNotifications]; - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKey:SKSwatchColorsKey context:&SKDefaultsObservationContext]; + [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:SKSwatchColorsKey options:0 context:&SKDefaultsObservationContext]; } - (NSToolbarItem *)toolbarItemForItemIdentifier:(NSString *)identifier { Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKMainWindowController.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -58,7 +58,6 @@ #import "SKNoteText.h" #import "SKSplitView.h" #import "NSBezierPath_SKExtensions.h" -#import "NSUserDefaultsController_SKExtensions.h" #import "NSUserDefaults_SKExtensions.h" #import "SKOutlineView.h" #import "SKNoteOutlineView.h" @@ -2445,13 +2444,13 @@ #pragma mark Observer registration - (void)registerAsObserver { - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeys: - @[SKBackgroundColorKey, SKFullScreenBackgroundColorKey, - SKDarkBackgroundColorKey, SKDarkFullScreenBackgroundColorKey, - SKThumbnailSizeKey, SKSnapshotThumbnailSizeKey, - SKInterpolationQualityKey, - SKTableFontSizeKey] - context:&SKMainWindowDefaultsObservationContext]; + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in @[SKBackgroundColorKey, SKFullScreenBackgroundColorKey, + SKDarkBackgroundColorKey, SKDarkFullScreenBackgroundColorKey, + SKThumbnailSizeKey, SKSnapshotThumbnailSizeKey, + SKInterpolationQualityKey, + SKTableFontSizeKey]) + [sud addObserver:self forKeyPath:key options:0 context:&SKMainWindowDefaultsObservationContext]; if (@available(macOS 10.14, *)) [NSApp addObserver:self forKeyPath:@"effectiveAppearance" options:0 context:&SKMainWindowAppObservationContext]; if (mwcFlags.fullSizeContent) @@ -2459,16 +2458,15 @@ } - (void)unregisterAsObserver { - @try { - [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeys: - @[SKBackgroundColorKey, SKFullScreenBackgroundColorKey, - SKDarkBackgroundColorKey, SKDarkFullScreenBackgroundColorKey, - SKThumbnailSizeKey, SKSnapshotThumbnailSizeKey, - SKInterpolationQualityKey, - SKTableFontSizeKey] - context:&SKMainWindowDefaultsObservationContext]; + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in @[SKBackgroundColorKey, SKFullScreenBackgroundColorKey, + SKDarkBackgroundColorKey, SKDarkFullScreenBackgroundColorKey, + SKThumbnailSizeKey, SKSnapshotThumbnailSizeKey, + SKInterpolationQualityKey, + SKTableFontSizeKey]) { + @try { [sud removeObserver:self forKeyPath:key context:&SKMainWindowDefaultsObservationContext]; } + @catch (id e) {} } - @catch (id e) {} if (@available(macOS 10.14, *)) { @try { [NSApp removeObserver:self forKeyPath:@"effectiveAppearance" context:&SKMainWindowAppObservationContext]; } @catch (id e) {} @@ -2533,8 +2531,7 @@ if (context == &SKMainWindowDefaultsObservationContext) { // A default value that we are observing has changed - NSString *key = [keyPath substringFromIndex:7]; - if ([key isEqualToString:SKBackgroundColorKey] || [key isEqualToString:SKDarkBackgroundColorKey]) { + if ([keyPath isEqualToString:SKBackgroundColorKey] || [keyPath isEqualToString:SKDarkBackgroundColorKey]) { NSColor *backgroundColor = nil; if (interactionMode == SKNormalMode) backgroundColor = [PDFView defaultBackgroundColor]; @@ -2544,25 +2541,25 @@ [pdfView setBackgroundColor:backgroundColor]; [secondaryPdfView setBackgroundColor:backgroundColor]; } - } else if ([key isEqualToString:SKFullScreenBackgroundColorKey] || [key isEqualToString:SKDarkFullScreenBackgroundColorKey]) { + } else if ([keyPath isEqualToString:SKFullScreenBackgroundColorKey] || [keyPath isEqualToString:SKDarkFullScreenBackgroundColorKey]) { if ([self interactionMode] == SKFullScreenMode) { NSColor *color = [PDFView defaultFullScreenBackgroundColor]; [pdfView setBackgroundColor:color]; [secondaryPdfView setBackgroundColor:color]; } - } else if ([key isEqualToString:SKThumbnailSizeKey]) { + } else if ([keyPath isEqualToString:SKThumbnailSizeKey]) { [self resetThumbnailSizeIfNeeded]; [leftSideController.thumbnailTableView noteHeightOfRowsChangedAnimating:YES]; - } else if ([key isEqualToString:SKSnapshotThumbnailSizeKey]) { + } else if ([keyPath isEqualToString:SKSnapshotThumbnailSizeKey]) { [self resetSnapshotSizeIfNeeded]; [rightSideController.snapshotTableView noteHeightOfRowsChangedAnimating:YES]; - } else if ([key isEqualToString:SKInterpolationQualityKey]) { + } else if ([keyPath isEqualToString:SKInterpolationQualityKey]) { [pdfView setInterpolationQuality:[[NSUserDefaults standardUserDefaults] integerForKey:SKInterpolationQualityKey]]; [secondaryPdfView setInterpolationQuality:[[NSUserDefaults standardUserDefaults] integerForKey:SKInterpolationQualityKey]]; [pdfView requiresDisplay]; [secondaryPdfView requiresDisplay]; [self allThumbnailsNeedUpdate]; - } else if ([key isEqualToString:SKTableFontSizeKey]) { + } else if ([keyPath isEqualToString:SKTableFontSizeKey]) { [self updateTableFont]; [self updatePageColumnWidthForTableViews:[NSArray arrayWithObjects:leftSideController.tocOutlineView, rightSideController.noteOutlineView, leftSideController.findTableView, leftSideController.groupedFindTableView, nil]]; } Modified: trunk/SKNoteTextView.m =================================================================== --- trunk/SKNoteTextView.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKNoteTextView.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -37,7 +37,6 @@ */ #import "SKNoteTextView.h" -#import "NSUserDefaultsController_SKExtensions.h" #import "SKStringConstants.h" static char SKNoteTextViewDefaultsObservationContext; @@ -70,7 +69,10 @@ - (void)dealloc { if (usesDefaultFontSize) - SKENSURE_MAIN_THREAD( [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKey:SKNoteTextFontSizeKey context:&SKNoteTextViewDefaultsObservationContext]; ); + SKENSURE_MAIN_THREAD( + @try { [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:SKNoteTextFontSizeKey context:&SKNoteTextViewDefaultsObservationContext]; } + @catch (id e) {} + ); } - (void)setUsesDefaultFontSize:(BOOL)flag { @@ -79,9 +81,10 @@ if (usesDefaultFontSize) { CGFloat fontSize = [[NSUserDefaults standardUserDefaults] floatForKey:SKNoteTextFontSizeKey]; [self setFont:[NSFont userFontOfSize:fontSize]]; - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKey:SKNoteTextFontSizeKey context:&SKNoteTextViewDefaultsObservationContext]; + [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:SKNoteTextFontSizeKey options:0 context:&SKNoteTextViewDefaultsObservationContext]; } else { - [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKey:SKNoteTextFontSizeKey context:&SKNoteTextViewDefaultsObservationContext]; + @try { [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:SKNoteTextFontSizeKey context:&SKNoteTextViewDefaultsObservationContext]; } + @catch(id e) {} } } } @@ -97,8 +100,7 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if (context == &SKNoteTextViewDefaultsObservationContext) { - NSString *key = [keyPath substringFromIndex:7]; - if ([key isEqualToString:SKNoteTextFontSizeKey] && usesDefaultFontSize) { + if ([keyPath isEqualToString:SKNoteTextFontSizeKey] && usesDefaultFontSize) { CGFloat fontSize = [[NSUserDefaults standardUserDefaults] floatForKey:SKNoteTextFontSizeKey]; [self setFont:[NSFont userFontOfSize:fontSize]]; } Modified: trunk/SKNoteWindowController.m =================================================================== --- trunk/SKNoteWindowController.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKNoteWindowController.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -46,7 +46,6 @@ #import "SKMainDocument.h" #import "SKPDFView.h" #import "NSWindowController_SKExtensions.h" -#import "NSUserDefaultsController_SKExtensions.h" #import "SKStringConstants.h" #import "PDFPage_SKExtensions.h" #import "NSValueTransformer_SKExtensions.h" @@ -152,8 +151,11 @@ [note addObserver:self forKeyPath:SKNPDFAnnotationPageKey options:0 context:&SKNoteWindowNoteObservationContext]; [note addObserver:self forKeyPath:SKNPDFAnnotationBoundsKey options:0 context:&SKNoteWindowNoteObservationContext]; [note addObserver:self forKeyPath:SKNPDFAnnotationStringKey options:0 context:&SKNoteWindowNoteObservationContext]; - if ([self isNoteType]) - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeys:[[self class] fontKeysToObserve] context:&SKNoteWindowDefaultsObservationContext]; + if ([self isNoteType]) { + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in [[self class] fontKeysToObserve]) + [sud addObserver:self forKeyPath:key options:0 context:&SKNoteWindowDefaultsObservationContext]; + } [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handlePageLabelsChangedNotification:) name:SKPageLabelsChangedNotification object:nil]; } return self; @@ -243,10 +245,15 @@ [note removeObserver:self forKeyPath:SKNPDFAnnotationPageKey context:&SKNoteWindowNoteObservationContext]; [note removeObserver:self forKeyPath:SKNPDFAnnotationBoundsKey context:&SKNoteWindowNoteObservationContext]; [note removeObserver:self forKeyPath:SKNPDFAnnotationStringKey context:&SKNoteWindowNoteObservationContext]; - if ([self isNoteType]) - [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeys:[[self class] fontKeysToObserve] context:&SKNoteWindowDefaultsObservationContext]; - else + if ([self isNoteType]) { + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in [[self class] fontKeysToObserve]) { + @try { [sud removeObserver:self forKeyPath:key context:&SKNoteWindowDefaultsObservationContext]; } + @catch(id e) {} + } + } else { [textView setUsesDefaultFontSize:NO]; + } [[self window] setDelegate:nil]; [imageView setDelegate:nil]; [textView setDelegate:nil]; @@ -397,8 +404,7 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if (context == &SKNoteWindowDefaultsObservationContext) { - NSString *key = [keyPath substringFromIndex:7]; - if (([key isEqualToString:SKAnchoredNoteFontNameKey] || [key isEqualToString:SKAnchoredNoteFontSizeKey]) && [self isNoteType] && [[textView string] length] == 0) { + if (([keyPath isEqualToString:SKAnchoredNoteFontNameKey] || [keyPath isEqualToString:SKAnchoredNoteFontSizeKey]) && [self isNoteType] && [[textView string] length] == 0) { NSFont *font = [[NSUserDefaults standardUserDefaults] fontForNameKey:SKAnchoredNoteFontNameKey sizeKey:SKAnchoredNoteFontSizeKey]; if (font) [textView setFont:font]; Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKPDFView.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -48,7 +48,6 @@ #import "NSCursor_SKExtensions.h" #import "SKApplication.h" #import "SKStringConstants.h" -#import "NSUserDefaultsController_SKExtensions.h" #import "NSUserDefaults_SKExtensions.h" #import "SKReadingBar.h" #import "SKTransitionController.h" @@ -338,7 +337,9 @@ name:PDFViewPageChangedNotification object:self]; [nc addObserver:self selector:@selector(handleScaleChangedNotification:) name:PDFViewScaleChangedNotification object:self]; - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeys:[[self class] defaultKeysToObserve] context:&SKPDFViewDefaultsObservationContext]; + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in [[self class] defaultKeysToObserve]) + [sud addObserver:self forKeyPath:key options:0 context:&SKPDFViewDefaultsObservationContext]; } - (instancetype)initWithFrame:(NSRect)frameRect { @@ -359,7 +360,9 @@ - (void)cleanup { [[NSSpellChecker sharedSpellChecker] closeSpellDocumentWithTag:spellingTag]; - [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeys:[[self class] defaultKeysToObserve] context:&SKPDFViewDefaultsObservationContext]; + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in [[self class] defaultKeysToObserve]) + [sud removeObserver:self forKeyPath:key context:&SKPDFViewDefaultsObservationContext]; [[NSNotificationCenter defaultCenter] removeObserver:self]; [self disableNavigation]; [[SKImageToolTipWindow sharedToolTipWindow] orderOut:self]; @@ -3439,11 +3442,10 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if (context == &SKPDFViewDefaultsObservationContext) { - NSString *key = [keyPath substringFromIndex:7]; - if ([key isEqualToString:SKReadingBarColorKey] || [key isEqualToString:SKReadingBarInvertKey]) { + if ([keyPath isEqualToString:SKReadingBarColorKey] || [keyPath isEqualToString:SKReadingBarInvertKey]) { if (readingBar) { PDFPage *page = [readingBar page]; - if ([key isEqualToString:SKReadingBarInvertKey] || [[NSUserDefaults standardUserDefaults] boolForKey:SKReadingBarInvertKey]) + if ([keyPath isEqualToString:SKReadingBarInvertKey] || [[NSUserDefaults standardUserDefaults] boolForKey:SKReadingBarInvertKey]) [self requiresDisplay]; else [self setNeedsDisplayForReadingBarBounds:[readingBar currentBounds] onPage:page]; Modified: trunk/SKSnapshotWindowController.m =================================================================== --- trunk/SKSnapshotWindowController.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKSnapshotWindowController.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -46,7 +46,6 @@ #import "SKSnapshotConfiguration.h" #import "NSWindowController_SKExtensions.h" #import "SKStringConstants.h" -#import "NSUserDefaultsController_SKExtensions.h" #import "NSGeometry_SKExtensions.h" #import "PDFPage_SKExtensions.h" #import "PDFAnnotation_SKExtensions.h" @@ -108,7 +107,9 @@ - (void)windowDidLoad { [self updateWindowLevel]; - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeys:@[SKSnapshotsOnTopKey, SKInterpolationQualityKey] context:&SKSnaphotWindowDefaultsObservationContext]; + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + [sud addObserver:self forKeyPath:SKSnapshotsOnTopKey options:0 context:&SKSnaphotWindowDefaultsObservationContext]; + [sud addObserver:self forKeyPath:SKInterpolationQualityKey options:0 context:&SKSnaphotWindowDefaultsObservationContext]; // the window is initialially exposed. The windowDidExpose notification is useless, it has nothing to do with showing the window [self setHasWindow:YES]; } @@ -212,8 +213,11 @@ } - (void)windowWillClose:(NSNotification *)notification { - @try { [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeys:@[SKSnapshotsOnTopKey, SKInterpolationQualityKey] context:&SKSnaphotWindowDefaultsObservationContext]; } + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + @try { [sud removeObserver:self forKeyPath:SKSnapshotsOnTopKey context:&SKSnaphotWindowDefaultsObservationContext]; } @catch (id e) {} + @try { [sud removeObserver:self forKeyPath:SKInterpolationQualityKey context:&SKSnaphotWindowDefaultsObservationContext]; } + @catch (id e) {} if ([[self delegate] respondsToSelector:@selector(snapshotControllerWillClose:)]) [[self delegate] snapshotControllerWillClose:self]; [self setDelegate:nil]; @@ -695,12 +699,11 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if (context == &SKSnaphotWindowDefaultsObservationContext) { - NSString *key = [keyPath substringFromIndex:7]; - if ([key isEqualToString:SKSnapshotsOnTopKey]) { + if ([keyPath isEqualToString:SKSnapshotsOnTopKey]) { if ([[self window] isVisible]) [self updateWindowLevel]; [pdfView requiresDisplay]; - } else if ([key isEqualToString:SKInterpolationQualityKey]) { + } else if ([keyPath isEqualToString:SKInterpolationQualityKey]) { [pdfView setInterpolationQuality:[[NSUserDefaults standardUserDefaults] integerForKey:SKInterpolationQualityKey]]; [pdfView requiresDisplay]; if ([[self delegate] respondsToSelector:@selector(snapshotControllerDidChange:)]) Modified: trunk/SKThumbnailImageView.m =================================================================== --- trunk/SKThumbnailImageView.m 2024-07-25 15:59:38 UTC (rev 14396) +++ trunk/SKThumbnailImageView.m 2024-07-25 16:44:49 UTC (rev 14397) @@ -39,7 +39,6 @@ #import "SKThumbnailImageView.h" #import "SKStringConstants.h" #import "NSGraphics_SKExtensions.h" -#import "NSUserDefaultsController_SKExtensions.h" static char SKThumbnailImageViewDefaultsObservationContext; @@ -55,7 +54,9 @@ - (void)commonInit { [self setWantsLayer:YES]; [self setContentFilters:SKColorEffectFilters()]; - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeys:defaultKeysToObserve() context:&SKThumbnailImageViewDefaultsObservationContext]; + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in defaultKeysToObserve()) + [sud addObserver:self forKeyPath:key options:0 context:&SKThumbnailImageViewDefaultsObservationContext]; } - (instancetype)initWithFrame:(NSRect)frameRect { @@ -74,8 +75,11 @@ return self; } - (void)dealloc { - @try { [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeys:defaultKeysToObserve() context:&SKThumbnailImageViewDefaultsObservationContext]; } - @catch (id e) {} + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + for (NSString *key in defaultKeysToObserve()) { + @try { [sud removeObserver:self forKeyPath:key context:&SKThumbnailImageViewDefaultsObservationContext]; } + @catch (id e) {} + } } - (void)viewDidChangeEffectiveAppearance { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-25 15:59:40
|
Revision: 14396 http://sourceforge.net/p/skim-app/code/14396 Author: hofman Date: 2024-07-25 15:59:38 +0000 (Thu, 25 Jul 2024) Log Message: ----------- Draw custom cursor images using system tint colors. Unfortunately we cannot observe changes to these (private) colors. Modified Paths: -------------- trunk/NSCursor_SKExtensions.m trunk/NSImage_SKExtensions.m Modified: trunk/NSCursor_SKExtensions.m =================================================================== --- trunk/NSCursor_SKExtensions.m 2024-07-23 16:29:41 UTC (rev 14395) +++ trunk/NSCursor_SKExtensions.m 2024-07-25 15:59:38 UTC (rev 14396) @@ -294,7 +294,7 @@ [laserPointerWindow setFrame:SKRectFromCenterAndSize(p, [laserPointerWindow frame].size) display:YES]; } else { NSImage *image = [self image]; - NSNumber *size = [[[NSUserDefaults standardUserDefaults] persistentDomainForName:@"com.apple.universalaccess"] objectForKey:@"mouseDriverCursorSize"]; + NSNumber *size = [[[NSUserDefaults alloc] initWithSuiteName:@"com.apple.universalaccess"] objectForKey:@"mouseDriverCursorSize"]; CGFloat s = 2.0 * round(0.5 * (size ? [size doubleValue] : 1.0) * [image size].width); laserPointerWindow = [[SKAnimatedBorderlessWindow alloc] initWithContentRect:SKRectFromCenterAndSquareSize(p, s)]; [laserPointerWindow setLevel:(NSWindowLevel)kCGCursorWindowLevel]; Modified: trunk/NSImage_SKExtensions.m =================================================================== --- trunk/NSImage_SKExtensions.m 2024-07-23 16:29:41 UTC (rev 14395) +++ trunk/NSImage_SKExtensions.m 2024-07-25 15:59:38 UTC (rev 14396) @@ -258,8 +258,8 @@ macro(Ink) #define DECLARE_NOTE_FUNCTIONS(name) \ -static void draw ## name ## Note(); \ -static void draw ## name ## NoteBackground() +static void draw ## name ## Note(NSColor *oolor); \ +static void draw ## name ## NoteBackground(NSColor *color) APPLY_NOTE_TYPES(DECLARE_NOTE_FUNCTIONS); @@ -1043,18 +1043,18 @@ #define MAKE_BADGED_IMAGES(name) \ MAKE_IMAGE(SKImageNameToolbarAdd ## name ## Note, YES, 27.0, 19.0, \ translate(3.0, 0.0); \ - draw ## name ## Note(); \ + draw ## name ## Note(nil); \ drawAddBadge(); \ ); \ MAKE_IMAGE(SKImageNameToolbar ## name ## NoteMenu, YES, 27.0, 19.0, \ drawMenuBadge(); \ translate(1.0, 0.0); \ - draw ## name ## Note(); \ + draw ## name ## Note(nil); \ ); \ MAKE_IMAGE(SKImageNameToolbarAdd ## name ## NoteMenu, YES, 27.0, 19.0, \ drawMenuBadge(); \ translate(1.0, 0.0); \ - draw ## name ## Note(); \ + draw ## name ## Note(nil); \ drawAddBadge(); \ ); \ @@ -1342,11 +1342,11 @@ #define MAKE_NOTE_TOUCHBAR_IMAGES(name) \ MAKE_IMAGE(SKImageNameTouchBar ## name ## Note, YES, 26.0, 30.0, \ translate(1.5, 5.0); \ - draw ## name ## Note(); \ + draw ## name ## Note(nil); \ ); \ MAKE_IMAGE(SKImageNameTouchBarAdd ## name ## Note, YES, 28.0, 30.0, \ translate(1.5, 5.0); \ - draw ## name ## Note(); \ + draw ## name ## Note(nil); \ translate(4.5, 0.0); \ drawAddBadge(); \ ); \ @@ -1353,7 +1353,7 @@ MAKE_IMAGE(SKImageNameTouchBar ## name ## NotePopover, YES, 36.0, 30.0, \ drawPopoverBadge(); \ translate(5.5, 5.0); \ - draw ## name ## Note(); \ + draw ## name ## Note(nil); \ ); APPLY_NOTE_TYPES(MAKE_NOTE_TOUCHBAR_IMAGES); @@ -1403,7 +1403,7 @@ #define MAKE_NOTE_IMAGE(name) \ MAKE_IMAGE(SKImageName ## name ## Note, YES, 21.0, 19.0, \ - draw ## name ## Note(); \ + draw ## name ## Note(nil); \ ) APPLY_NOTE_TYPES(MAKE_NOTE_IMAGE); @@ -1412,7 +1412,7 @@ [[NSColor blackColor] setStroke]; [NSBezierPath strokeRect:NSMakeRect(1.5, 2.5, 16.0, 10.0)]; [[NSGraphicsContext currentContext] setCompositingOperation:NSCompositingOperationCopy]; - drawTextNote(); + drawTextNote(nil); ); [[self imageNamed:SKImageNameTextNote] setAccessibilityDescription:[SKNFreeTextString typeName]]; @@ -1542,12 +1542,12 @@ t = [NSAffineTransform transform]; [t translateXBy:1.5 yBy:3.0]; [t concat]; - drawTextNote(); + drawTextNote(nil); t = [NSAffineTransform transform]; [t rotateByDegrees:-45.0]; [t translateXBy:-4 yBy:-2]; [t concat]; - drawInkNote(); + drawInkNote(nil); ); } @@ -1612,8 +1612,20 @@ + (void)makeCursorImages { + NSUserDefaults *prefs = [[NSUserDefaults alloc] initWithSuiteName:@"com.apple.universalaccess"]; + NSColor *cursorOutline = [NSColor whiteColor]; + NSColor *cursorFill = [NSColor blackColor]; + if ([prefs boolForKey:@"cursorIsCustomized"]) { + NSDictionary *color = [prefs dictionaryForKey:@"cursorOutline"]; + if ([color count] == 4) + cursorOutline = [NSColor colorWithSRGBRed:[[color objectForKey:@"red"] doubleValue] green:[[color objectForKey:@"green"] doubleValue] blue:[[color objectForKey:@"blue"] doubleValue] alpha:[[color objectForKey:@"alpha"] doubleValue]] ?: cursorOutline; + color = [prefs dictionaryForKey:@"cursorFill"]; + if ([color count] == 4) + cursorFill = [NSColor colorWithSRGBRed:[[color objectForKey:@"red"] doubleValue] green:[[color objectForKey:@"green"] doubleValue] blue:[[color objectForKey:@"blue"] doubleValue] alpha:[[color objectForKey:@"alpha"] doubleValue]] ?: cursorFill; + } + MAKE_VECTOR_IMAGE(SKImageNameResizeDiagonal45Cursor, NO, 16.0, 16.0, - [[NSColor whiteColor] setFill]; + [cursorOutline setFill]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(2.0, 2.0)]; [path lineToPoint:NSMakePoint(9.5, 2.0)]; @@ -1638,7 +1650,7 @@ [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; [path fill]; [NSGraphicsContext restoreGraphicsState]; - [[NSColor blackColor] setFill]; + [cursorFill setFill]; path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(3.0, 3.0)]; [path lineToPoint:NSMakePoint(7.0, 3.0)]; @@ -1663,7 +1675,7 @@ ); MAKE_VECTOR_IMAGE(SKImageNameResizeDiagonal135Cursor, NO, 16.0, 16.0, - [[NSColor whiteColor] setFill]; + [cursorOutline setFill]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(14.0, 2.0)]; [path lineToPoint:NSMakePoint(14.0, 9.5)]; @@ -1688,7 +1700,7 @@ [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; [path fill]; [NSGraphicsContext restoreGraphicsState]; - [[NSColor blackColor] setFill]; + [cursorFill setFill]; path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(13.0, 3.0)]; [path lineToPoint:NSMakePoint(13.0, 7.0)]; @@ -1713,7 +1725,7 @@ ); MAKE_VECTOR_IMAGE(SKImageNameZoomInCursor, NO, 18.0, 18.0, - [[NSColor whiteColor] set]; + [cursorOutline set]; NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(1.0, 5.0, 13.0, 13.0)]; [path moveToPoint:NSMakePoint(14.5, 1.5)]; [path lineToPoint:NSMakePoint(17.5, 4.5)]; @@ -1724,7 +1736,7 @@ [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; [path fill]; [NSGraphicsContext restoreGraphicsState]; - [[NSColor blackColor] setStroke]; + [cursorFill setStroke]; path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(3.0, 7.0, 9.0, 9.0)]; [path setLineWidth:2.0]; [path stroke]; @@ -1743,7 +1755,7 @@ ); MAKE_VECTOR_IMAGE(SKImageNameZoomOutCursor, NO, 18.0, 18.0, - [[NSColor whiteColor] set]; + [cursorOutline set]; NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(1.0, 5.0, 13.0, 13.0)]; [path moveToPoint:NSMakePoint(14.5, 1.5)]; [path lineToPoint:NSMakePoint(17.5, 4.5)]; @@ -1754,7 +1766,7 @@ [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; [path fill]; [NSGraphicsContext restoreGraphicsState]; - [[NSColor blackColor] setStroke]; + [cursorFill setStroke]; path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(3.0, 7.0, 9.0, 9.0)]; [path setLineWidth:2.0]; [path stroke]; @@ -1771,7 +1783,7 @@ ); MAKE_VECTOR_IMAGE(SKImageNameCameraCursor, NO, 18.0, 16.0, - [[NSColor whiteColor] set]; + [cursorOutline set]; NSBezierPath *path = [NSBezierPath bezierPathWithRect:NSMakeRect(1.0, 2.0, 16.0, 11.0)]; [path appendBezierPathWithOvalInRect:NSMakeRect(4.7, 6.7, 8.6, 8.6)]; [NSGraphicsContext saveGraphicsState]; @@ -1778,11 +1790,11 @@ [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; [path fill]; [NSGraphicsContext restoreGraphicsState]; - [[NSColor blackColor] set]; + [cursorFill set]; path = [NSBezierPath bezierPathWithRect:NSMakeRect(2.0, 3.0, 14.0, 9.0)]; [path appendBezierPathWithOvalInRect:NSMakeRect(6.0, 8.0, 6.0, 6.0)]; [path fill]; - [[NSColor whiteColor] set]; + [cursorOutline set]; [[NSBezierPath bezierPathWithOvalInRect:NSMakeRect(5.3, 4.3, 7.4, 7.4)] stroke]; path = [NSBezierPath bezierPath]; [path appendBezierPathWithArcWithCenter:NSMakePoint(9.0, 8.0) radius:1.8 startAngle:45.0 endAngle:225.0]; @@ -1795,7 +1807,7 @@ if (NSEqualSizes(size, NSMakeSize(32.0, 32.0))) { MAKE_VECTOR_IMAGE(SKImageNameOpenHandBarCursor, NO, 32.0, 32.0, - [[NSColor blackColor] setFill]; + [cursorFill setFill]; [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; @@ -1804,7 +1816,7 @@ ); MAKE_VECTOR_IMAGE(SKImageNameClosedHandBarCursor, NO, 32.0, 32.0, - [[NSColor blackColor] setFill]; + [cursorFill setFill]; [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:1.0 yOffset:-1.0]; [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; @@ -1815,13 +1827,13 @@ } else { MAKE_VECTOR_IMAGE(SKImageNameOpenHandBarCursor, NO, size.width, size.width, - [[NSColor blackColor] setFill]; + [cursorFill setFill]; [NSBezierPath fillRect:NSMakeRect(0.0, 9.0 / 16.0 * size.height, size.width, 3.0 / 16.0 * size.height)]; [[[NSCursor openHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, size.width, size.height) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; ); MAKE_VECTOR_IMAGE(SKImageNameClosedHandBarCursor, NO, size.width, size.width, - [[NSColor blackColor] setFill]; + [cursorFill setFill]; [NSBezierPath fillRect:NSMakeRect(0.0, 6.0 / 16.0 * size.height, size.width, 3.0 / 16.0 * size.height)]; [[[NSCursor closedHandCursor] image] drawInRect:NSMakeRect(0.0, 0.0, size.width, size.height) fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; ); @@ -1832,8 +1844,8 @@ MAKE_VECTOR_IMAGE(SKImageName ## name ## NoteCursor, NO, 24.0, 42.0, \ drawArrowCursor(); \ translate(2.0, 2.0); \ - draw ## name ## NoteBackground(); \ - draw ## name ## Note(); \ + draw ## name ## NoteBackground(cursorOutline); \ + draw ## name ## Note(cursorFill); \ ) APPLY_NOTE_TYPES(MAKE_NOTE_CURSOR_IMAGE); @@ -1940,8 +1952,8 @@ @end -static void drawTextNote() { - [[NSColor colorWithGenericGamma22White:0.0 alpha:0.75] setFill]; +static void drawTextNote(NSColor *color) { + [[color colorWithAlphaComponent:0.75] ?: [NSColor colorWithGenericGamma22White:0.0 alpha:0.75] setFill]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(5.0, 5.0)]; [path lineToPoint:NSMakePoint(9.0, 6.5)]; @@ -1955,8 +1967,8 @@ [path fill]; } -static void drawAnchoredNote() { - [[NSColor blackColor] setStroke]; +static void drawAnchoredNote(NSColor *color) { + [color ?: [NSColor blackColor] setStroke]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(12.0, 6.5)]; [path appendBezierPathWithArcFromPoint:NSMakePoint(16.5, 6.5) toPoint:NSMakePoint(16.5, 15.5) radius:4.5]; @@ -1965,7 +1977,7 @@ [path lineToPoint:NSMakePoint(8.5, 4.5)]; [path closePath]; [path stroke]; - [[NSColor colorWithGenericGamma22White:0.0 alpha:0.333] setStroke]; + [[color colorWithAlphaComponent:0.333] ?: [NSColor colorWithGenericGamma22White:0.0 alpha:0.333] setStroke]; path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(8.0, 11.5)]; [path lineToPoint:NSMakePoint(12.0, 11.5)]; @@ -1974,25 +1986,25 @@ [path stroke]; } -static void drawCircleNote() { - [[NSColor blackColor] setStroke]; +static void drawCircleNote(NSColor *color) { + [color ?: [NSColor blackColor] setStroke]; NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(4.5, 4.5, 12.0, 11.0)]; [path stroke]; } -static void drawSquareNote() { - [[NSColor blackColor] setStroke]; +static void drawSquareNote(NSColor *color) { + [color ?: [NSColor blackColor] setStroke]; NSBezierPath *path = [NSBezierPath bezierPathWithRect:NSMakeRect(4.5, 4.5, 12.0, 11.0)]; [path stroke]; } -static void drawHighlightNote() { +static void drawHighlightNote(NSColor *color) { NSFont *font = [NSFont fontWithName:@"Helvetica" size:14.0] ?: [NSFont systemFontOfSize:14.0]; NSGlyph glyph = [font glyphWithName:@"H"]; - [[NSColor colorWithGenericGamma22White:0.0 alpha:0.25] setFill]; + [[color colorWithAlphaComponent:0.25] ?: [NSColor colorWithGenericGamma22White:0.0 alpha:0.25] setFill]; NSBezierPath *path = [NSBezierPath bezierPathWithRect:NSMakeRect(3.0, 2.0, 15.0, 16.0)]; [path fill]; - [[NSColor colorWithGenericGamma22White:0.0 alpha:0.75] setFill]; + [[color colorWithAlphaComponent:0.75] ?: [NSColor colorWithGenericGamma22White:0.0 alpha:0.75] setFill]; path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(10.5 - NSMidX([font boundingRectForGlyph:glyph]), 5.0)]; [path appendBezierPathWithGlyph:glyph inFont:font]; @@ -1999,15 +2011,15 @@ [path fill]; } -static void drawUnderlineNote() { +static void drawUnderlineNote(NSColor *color) { NSFont *font = [NSFont fontWithName:@"Helvetica" size:14.0] ?: [NSFont systemFontOfSize:14.0]; NSGlyph glyph = [font glyphWithName:@"U"]; - [[NSColor colorWithGenericGamma22White:0.0 alpha:0.75] setFill]; + [[color colorWithAlphaComponent:0.75] ?: [NSColor colorWithGenericGamma22White:0.0 alpha:0.75] setFill]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(10.5 - NSMidX([font boundingRectForGlyph:glyph]), 6.0)]; [path appendBezierPathWithGlyph:glyph inFont:font]; [path fill]; - [[NSColor blackColor] setStroke]; + [color ?: [NSColor blackColor] setStroke]; path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(2.0, 4.5)]; [path lineToPoint:NSMakePoint(19.0, 4.5)]; @@ -2014,15 +2026,15 @@ [path stroke]; } -static void drawStrikeOutNote() { +static void drawStrikeOutNote(NSColor *color) { NSFont *font = [NSFont fontWithName:@"Helvetica" size:14.0] ?: [NSFont systemFontOfSize:14.0]; NSGlyph glyph = [font glyphWithName:@"S"]; - [[NSColor colorWithGenericGamma22White:0.0 alpha:0.75] setFill]; + [[color colorWithAlphaComponent:0.75] ?: [NSColor colorWithGenericGamma22White:0.0 alpha:0.75] setFill]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(10.5 - NSMidX([font boundingRectForGlyph:glyph]), 5.0)]; [path appendBezierPathWithGlyph:glyph inFont:font]; [path fill]; - [[NSColor blackColor] setStroke]; + [color ?: [NSColor blackColor] setStroke]; path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(2.0, 9.5)]; [path lineToPoint:NSMakePoint(19.0, 9.5)]; @@ -2029,8 +2041,8 @@ [path stroke]; } -static void drawLineNote() { - [[NSColor blackColor] setFill]; +static void drawLineNote(NSColor *color) { + [color ?: [NSColor blackColor] setFill]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(3.0, 10.0)]; [path lineToPoint:NSMakePoint(15.0, 10.0)]; @@ -2043,8 +2055,8 @@ [path fill]; } -static void drawInkNote() { - [[NSColor blackColor] setStroke]; +static void drawInkNote(NSColor *color) { + [color ?: [NSColor blackColor] setStroke]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(4.0, 9.0)]; [path curveToPoint:NSMakePoint(10.5, 10.0) controlPoint1:NSMakePoint(10.0, 5.0) controlPoint2:NSMakePoint(13.0, 5.0)]; @@ -2052,10 +2064,10 @@ [path stroke]; } -static void drawTextNoteBackground() { +static void drawTextNoteBackground(NSColor *color) { [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:2.0 yOffset:-1.0]; - [[NSColor whiteColor] setFill]; + [color setFill]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(3.22, 3.22)]; [path lineToPoint:NSMakePoint(10.1, 5.7)]; @@ -2067,10 +2079,10 @@ [NSGraphicsContext restoreGraphicsState]; } -static void drawAnchoredNoteBackground() { +static void drawAnchoredNoteBackground(NSColor *color) { [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:2.0 yOffset:-1.0]; - [[NSColor whiteColor] setFill]; + [color setFill]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(12.15, 5.0)]; [path appendBezierPathWithArcFromPoint:NSMakePoint(18.0, 5.0) toPoint:NSMakePoint(18.0, 15.5) radius:6.0]; @@ -2082,10 +2094,10 @@ [NSGraphicsContext restoreGraphicsState]; } -static void drawCircleNoteBackground() { +static void drawCircleNoteBackground(NSColor *color) { [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:2.0 yOffset:-1.0]; - [[NSColor whiteColor] setStroke]; + [color setStroke]; NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(4.5, 4.5, 12.0, 11.0)]; [path setLineWidth:3.0]; [path stroke]; @@ -2092,10 +2104,10 @@ [NSGraphicsContext restoreGraphicsState]; } -static void drawSquareNoteBackground() { +static void drawSquareNoteBackground(NSColor *color) { [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:2.0 yOffset:-1.0]; - [[NSColor whiteColor] setStroke]; + [color setStroke]; NSBezierPath *path = [NSBezierPath bezierPathWithRect:NSMakeRect(4.5, 4.5, 12.0, 11.0)]; [path setLineWidth:3.0]; [path stroke]; @@ -2102,19 +2114,19 @@ [NSGraphicsContext restoreGraphicsState]; } -static void drawHighlightNoteBackground() { +static void drawHighlightNoteBackground(NSColor *color) { [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:2.0 yOffset:-1.0]; - [[NSColor whiteColor] setFill]; + [color setFill]; NSBezierPath *path = [NSBezierPath bezierPathWithRect:NSMakeRect(2.0, 1.0, 17.0, 18.0)]; [path fill]; [NSGraphicsContext restoreGraphicsState]; } -static void drawUnderlineNoteBackground() { +static void drawUnderlineNoteBackground(NSColor *color) { [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:2.0 yOffset:-1.0]; - [[NSColor whiteColor] setStroke]; + [color setStroke]; NSFont *font = [NSFont fontWithName:@"Helvetica" size:14.0] ?: [NSFont systemFontOfSize:14.0]; NSGlyph glyph = [font glyphWithName:@"U"]; NSBezierPath *path = [NSBezierPath bezierPath]; @@ -2126,10 +2138,10 @@ [NSGraphicsContext restoreGraphicsState]; } -static void drawStrikeOutNoteBackground() { +static void drawStrikeOutNoteBackground(NSColor *color) { [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:2.0 yOffset:-1.0]; - [[NSColor whiteColor] setStroke]; + [color setStroke]; NSFont *font = [NSFont fontWithName:@"Helvetica" size:14.0] ?: [NSFont systemFontOfSize:14.0]; NSGlyph glyph = [font glyphWithName:@"S"]; NSBezierPath *path = [NSBezierPath bezierPath]; @@ -2141,10 +2153,10 @@ [NSGraphicsContext restoreGraphicsState]; } -static void drawLineNoteBackground() { +static void drawLineNoteBackground(NSColor *color) { [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:2.0 yOffset:-1.0]; - [[NSColor whiteColor] setFill]; + [color setFill]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(2.0, 9.0)]; [path lineToPoint:NSMakePoint(14.0, 9.0)]; @@ -2158,10 +2170,10 @@ [NSGraphicsContext restoreGraphicsState]; } -static void drawInkNoteBackground() { +static void drawInkNoteBackground(NSColor *color) { [NSGraphicsContext saveGraphicsState]; [NSShadow setShadowWithWhite:0.0 alpha:0.33333 blurRadius:2.0 yOffset:-1.0]; - [[NSColor whiteColor] setStroke]; + [color setStroke]; NSBezierPath *path = [NSBezierPath bezierPath]; [path moveToPoint:NSMakePoint(3.24, 9.52)]; [path lineToPoint:NSMakePoint(4.0, 9.0)]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-23 16:29:44
|
Revision: 14395 http://sourceforge.net/p/skim-app/code/14395 Author: hofman Date: 2024-07-23 16:29:41 +0000 (Tue, 23 Jul 2024) Log Message: ----------- set script error when adding note without page Modified Paths: -------------- trunk/SKMainDocument.m Modified: trunk/SKMainDocument.m =================================================================== --- trunk/SKMainDocument.m 2024-07-23 16:23:52 UTC (rev 14394) +++ trunk/SKMainDocument.m 2024-07-23 16:29:41 UTC (rev 14395) @@ -1657,11 +1657,12 @@ - (void)insertObject:(PDFAnnotation *)newNote inNotesAtIndex:(NSUInteger)anIndex { if ([[self pdfDocument] allowsNotes]) { PDFPage *page = [newNote page]; - if (page && [[page annotations] containsObject:newNote] == NO) { + if (page == nil) { + [[NSScriptCommand currentCommand] setScriptErrorNumber:NSReceiversCantHandleCommandScriptError]; + [[NSScriptCommand currentCommand] setScriptErrorString:@"New note needs to be added to a page."]; + } else if ([[page annotations] containsObject:newNote] == NO) { [[self pdfDocument] addAnnotation:newNote toPage:page]; [[self undoManager] setActionName:NSLocalizedString(@"Add Note", @"Undo action name")]; - } else { - [[NSScriptCommand currentCommand] setScriptErrorNumber:NSReceiversCantHandleCommandScriptError]; } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-23 16:23:55
|
Revision: 14394 http://sourceforge.net/p/skim-app/code/14394 Author: hofman Date: 2024-07-23 16:23:52 +0000 (Tue, 23 Jul 2024) Log Message: ----------- Don't set text for markup note from AppleScript when setting the text is disabled Modified Paths: -------------- trunk/PDFPage_SKExtensions.m Modified: trunk/PDFPage_SKExtensions.m =================================================================== --- trunk/PDFPage_SKExtensions.m 2024-07-23 16:15:40 UTC (rev 14393) +++ trunk/PDFPage_SKExtensions.m 2024-07-23 16:23:52 UTC (rev 14394) @@ -714,7 +714,8 @@ [[NSScriptCommand currentCommand] setScriptErrorString:@"New markup notes need a selection."]; } else if (selection) { annotation = [PDFAnnotation newSkimNoteWithSelection:selection forType:type]; - if ([props objectForKey:SKPDFAnnotationScriptingTextContentsKey] == nil) + if ([props objectForKey:SKPDFAnnotationScriptingTextContentsKey] == nil && + [[NSUserDefaults standardUserDefaults] integerForKey:SKDisableUpdateContentsFromEnclosedTextKey] != 2) [props setValue:[selection cleanedString] forKey:SKPDFAnnotationScriptingTextContentsKey]; } } else if ([type isEqualToString:SKNInkString]) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-23 16:15:45
|
Revision: 14393 http://sourceforge.net/p/skim-app/code/14393 Author: hofman Date: 2024-07-23 16:15:40 +0000 (Tue, 23 Jul 2024) Log Message: ----------- imply new note type from selection or path list in properties Modified Paths: -------------- trunk/PDFPage_SKExtensions.m Modified: trunk/PDFPage_SKExtensions.m =================================================================== --- trunk/PDFPage_SKExtensions.m 2024-07-22 16:02:40 UTC (rev 14392) +++ trunk/PDFPage_SKExtensions.m 2024-07-23 16:15:40 UTC (rev 14393) @@ -696,8 +696,12 @@ NSMutableDictionary *props = [properties mutableCopy]; NSString *type = [properties objectForKey:SKNPDFAnnotationTypeKey]; [props removeObjectForKey:SKNPDFAnnotationTypeKey]; - if (type == nil && contentsValue) - type = SKNHighlightString; + if (type == nil) { + if (contentsValue || [properties objectForKey:SKPDFAnnotationSelectionSpecifierKey]) + type = SKNHighlightString; + else if ([properties objectForKey:SKPDFAnnotationScriptingPointListsKey]) + type = SKNInkString; + } if ([[self document] allowsNotes] == NO) { [[NSScriptCommand currentCommand] setScriptErrorNumber:NSReceiversCantHandleCommandScriptError]; [[NSScriptCommand currentCommand] setScriptErrorString:@"PDF does not support notes."]; @@ -742,7 +746,7 @@ } annotation = [PDFAnnotation newSkimNoteWithPaths:paths]; } - } else { + } else if (type && [[NSSet setWithObjects:SKNFreeTextString, SKNNoteString, SKNCircleString, SKNSquareString, SKNLineString, nil] containsObject:type]) { NSRect bounds = NSZeroRect; bounds.size.width = [[NSUserDefaults standardUserDefaults] floatForKey:SKDefaultNoteWidthKey]; bounds.size.height = [[NSUserDefaults standardUserDefaults] floatForKey:SKDefaultNoteHeightKey]; @@ -750,12 +754,10 @@ bounds.size = SKNPDFAnnotationNoteSize; bounds = NSIntegralRect(SKRectFromCenterAndSize(SKIntegralPoint(SKCenterPoint([self boundsForBox:kPDFDisplayBoxCropBox])), bounds.size)); - if ([[NSSet setWithObjects:SKNFreeTextString, SKNNoteString, SKNCircleString, SKNSquareString, SKNLineString, nil] containsObject:type]) { - annotation = [PDFAnnotation newSkimNoteWithBounds:bounds forType:type]; - } else { - [[NSScriptCommand currentCommand] setScriptErrorNumber:NSRequiredArgumentsMissingScriptError]; - [[NSScriptCommand currentCommand] setScriptErrorString:@"New notes need a type."]; - } + annotation = [PDFAnnotation newSkimNoteWithBounds:bounds forType:type]; + } else { + [[NSScriptCommand currentCommand] setScriptErrorNumber:NSRequiredArgumentsMissingScriptError]; + [[NSScriptCommand currentCommand] setScriptErrorString:@"New notes need a type."]; } if (annotation) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-22 16:02:42
|
Revision: 14392 http://sourceforge.net/p/skim-app/code/14392 Author: hofman Date: 2024-07-22 16:02:40 +0000 (Mon, 22 Jul 2024) Log Message: ----------- we don't implement TeX line as a value type Modified Paths: -------------- trunk/NSNumber_SKExtensions.m Modified: trunk/NSNumber_SKExtensions.m =================================================================== --- trunk/NSNumber_SKExtensions.m 2024-07-21 15:01:17 UTC (rev 14391) +++ trunk/NSNumber_SKExtensions.m 2024-07-22 16:02:40 UTC (rev 14392) @@ -112,16 +112,4 @@ return string; } -+ (NSNumber *)scriptingTexLineWithDescriptor:(NSAppleEventDescriptor *)descriptor { - if ([descriptor descriptorType] != typeObjectSpecifier || [[descriptor descriptorForKeyword:keyAEDesiredClass] typeCodeValue]!= 'Line') - return nil; - NSInteger i = [[descriptor descriptorForKeyword:keyAEKeyData] int32Value]; - return [NSNumber numberWithInteger:MAX(0, i - 1)]; -} - -- (NSAppleEventDescriptor *)scriptingTexLineDescriptor { - NSScriptClassDescription *containerClassDescription = [NSScriptClassDescription classDescriptionForClass:[NSApp class]]; - return [[[NSIndexSpecifier alloc] initWithContainerClassDescription:containerClassDescription containerSpecifier:nil key:@"texLines" index:[self integerValue]] descriptor]; -} - @end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-21 15:01:18
|
Revision: 14391 http://sourceforge.net/p/skim-app/code/14391 Author: hofman Date: 2024-07-21 15:01:17 +0000 (Sun, 21 Jul 2024) Log Message: ----------- Don't use private zoom in/out cursors, they don't work when customizing the colors Modified Paths: -------------- trunk/NSCursor_SKExtensions.m Modified: trunk/NSCursor_SKExtensions.m =================================================================== --- trunk/NSCursor_SKExtensions.m 2024-07-21 14:52:55 UTC (rev 14390) +++ trunk/NSCursor_SKExtensions.m 2024-07-21 15:01:17 UTC (rev 14391) @@ -48,8 +48,6 @@ @interface NSCursor (SKPrivateDeclarations) + (id)_windowResizeNorthWestSouthEastCursor; + (id)_windowResizeNorthEastSouthWestCursor; -+ (id)_zoomOutCursor; -+ (id)_zoomInCursor; @end @interface SKLaserPointerCursor : NSCursor @@ -80,12 +78,8 @@ + (NSCursor *)zoomInCursor { static NSCursor *zoomInCursor = nil; if (nil == zoomInCursor) { - if ([self respondsToSelector:@selector(_zoomInCursor)]) { - zoomInCursor = [NSCursor _zoomInCursor]; - } else { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameZoomInCursor] copy]; - zoomInCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(7.0, 6.0)]; - } + NSImage *cursorImage = [[NSImage imageNamed:SKImageNameZoomInCursor] copy]; + zoomInCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(7.0, 6.0)]; } return zoomInCursor; } @@ -93,12 +87,8 @@ + (NSCursor *)zoomOutCursor { static NSCursor *zoomOutCursor = nil; if (nil == zoomOutCursor) { - if ([self respondsToSelector:@selector(_zoomOutCursor)]) { - zoomOutCursor = [NSCursor _zoomOutCursor]; - } else { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameZoomOutCursor] copy]; - zoomOutCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(7.0, 6.0)]; - } + NSImage *cursorImage = [[NSImage imageNamed:SKImageNameZoomOutCursor] copy]; + zoomOutCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(7.0, 6.0)]; } return zoomOutCursor; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-21 14:52:56
|
Revision: 14390 http://sourceforge.net/p/skim-app/code/14390 Author: hofman Date: 2024-07-21 14:52:55 +0000 (Sun, 21 Jul 2024) Log Message: ----------- use some private system cursor when available for diagnoal resize and zoom in/out Modified Paths: -------------- trunk/NSCursor_SKExtensions.m Modified: trunk/NSCursor_SKExtensions.m =================================================================== --- trunk/NSCursor_SKExtensions.m 2024-07-20 09:42:11 UTC (rev 14389) +++ trunk/NSCursor_SKExtensions.m 2024-07-21 14:52:55 UTC (rev 14390) @@ -45,6 +45,13 @@ static inline void hideLaserPointer(void); +@interface NSCursor (SKPrivateDeclarations) ++ (id)_windowResizeNorthWestSouthEastCursor; ++ (id)_windowResizeNorthEastSouthWestCursor; ++ (id)_zoomOutCursor; ++ (id)_zoomInCursor; +@end + @interface SKLaserPointerCursor : NSCursor @end @@ -73,8 +80,12 @@ + (NSCursor *)zoomInCursor { static NSCursor *zoomInCursor = nil; if (nil == zoomInCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameZoomInCursor] copy]; - zoomInCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(7.0, 6.0)]; + if ([self respondsToSelector:@selector(_zoomInCursor)]) { + zoomInCursor = [NSCursor _zoomInCursor]; + } else { + NSImage *cursorImage = [[NSImage imageNamed:SKImageNameZoomInCursor] copy]; + zoomInCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(7.0, 6.0)]; + } } return zoomInCursor; } @@ -82,8 +93,12 @@ + (NSCursor *)zoomOutCursor { static NSCursor *zoomOutCursor = nil; if (nil == zoomOutCursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameZoomOutCursor] copy]; - zoomOutCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(7.0, 6.0)]; + if ([self respondsToSelector:@selector(_zoomOutCursor)]) { + zoomOutCursor = [NSCursor _zoomOutCursor]; + } else { + NSImage *cursorImage = [[NSImage imageNamed:SKImageNameZoomOutCursor] copy]; + zoomOutCursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(7.0, 6.0)]; + } } return zoomOutCursor; } @@ -91,8 +106,12 @@ + (NSCursor *)resizeDiagonal45Cursor { static NSCursor *resizeDiagonal45Cursor = nil; if (nil == resizeDiagonal45Cursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameResizeDiagonal45Cursor] copy]; - resizeDiagonal45Cursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(8.0, 8.0)]; + if ([self respondsToSelector:@selector(_windowResizeNorthEastSouthWestCursor)]) { + resizeDiagonal45Cursor = [NSCursor _windowResizeNorthEastSouthWestCursor]; + } else { + NSImage *cursorImage = [[NSImage imageNamed:SKImageNameResizeDiagonal45Cursor] copy]; + resizeDiagonal45Cursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(8.0, 8.0)]; + } } return resizeDiagonal45Cursor; } @@ -100,8 +119,12 @@ + (NSCursor *)resizeDiagonal135Cursor { static NSCursor *resizeDiagonal135Cursor = nil; if (nil == resizeDiagonal135Cursor) { - NSImage *cursorImage = [[NSImage imageNamed:SKImageNameResizeDiagonal135Cursor] copy]; - resizeDiagonal135Cursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(8.0, 8.0)]; + if ([self respondsToSelector:@selector(_windowResizeNorthWestSouthEastCursor)]) { + resizeDiagonal135Cursor = [NSCursor _windowResizeNorthWestSouthEastCursor]; + } else { + NSImage *cursorImage = [[NSImage imageNamed:SKImageNameResizeDiagonal135Cursor] copy]; + resizeDiagonal135Cursor = [[NSCursor alloc] initWithImage:cursorImage hotSpot:NSMakePoint(8.0, 8.0)]; + } } return resizeDiagonal135Cursor; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-20 09:42:13
|
Revision: 14389 http://sourceforge.net/p/skim-app/code/14389 Author: hofman Date: 2024-07-20 09:42:11 +0000 (Sat, 20 Jul 2024) Log Message: ----------- fix script code for widget note Modified Paths: -------------- trunk/Skim.sdef Modified: trunk/Skim.sdef =================================================================== --- trunk/Skim.sdef 2024-07-19 14:30:10 UTC (rev 14388) +++ trunk/Skim.sdef 2024-07-20 09:42:11 UTC (rev 14389) @@ -1368,7 +1368,7 @@ description="Freehand."> <cocoa string-value="Ink"/> </enumerator> - <enumerator name="widget note" code="NInk" + <enumerator name="widget note" code="NWdg" description="Widget."> <cocoa string-value="Widget"/> </enumerator> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-19 14:30:13
|
Revision: 14388 http://sourceforge.net/p/skim-app/code/14388 Author: hofman Date: 2024-07-19 14:30:10 +0000 (Fri, 19 Jul 2024) Log Message: ----------- Use device independent modifiers instead of standad modifiers, filter out num eric pad, function, and caps lock when needed Modified Paths: -------------- trunk/NSEvent_SKExtensions.h trunk/NSEvent_SKExtensions.m trunk/SKMainWindow.m trunk/SKPDFView.m trunk/SKSecondaryPDFView.m trunk/SKSnapshotPDFView.m trunk/SKTextNoteEditor.m Modified: trunk/NSEvent_SKExtensions.h =================================================================== --- trunk/NSEvent_SKExtensions.h 2024-07-18 22:50:01 UTC (rev 14387) +++ trunk/NSEvent_SKExtensions.h 2024-07-19 14:30:10 UTC (rev 14388) @@ -47,9 +47,7 @@ @interface NSEvent (SKExtensions) -@property (class, nonatomic, readonly) NSUInteger standardModifierFlags; @property (nonatomic, readonly) NSUInteger deviceIndependentModifierFlags; -@property (nonatomic, readonly) NSUInteger standardModifierFlags; @property (class, nonatomic) NSPointingDeviceType currentPointingDeviceType; Modified: trunk/NSEvent_SKExtensions.m =================================================================== --- trunk/NSEvent_SKExtensions.m 2024-07-18 22:50:01 UTC (rev 14387) +++ trunk/NSEvent_SKExtensions.m 2024-07-19 14:30:10 UTC (rev 14388) @@ -42,18 +42,10 @@ static NSPointingDeviceType currentPointingDeviceType = NSPointingDeviceTypeUnknown; -+ (NSUInteger)standardModifierFlags { - return [self modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask & ~(NSEventModifierFlagNumericPad | NSEventModifierFlagFunction); -} - - (NSUInteger)deviceIndependentModifierFlags { return [self modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask; } -- (NSUInteger)standardModifierFlags { - return [self modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask & ~(NSEventModifierFlagNumericPad | NSEventModifierFlagFunction); -} - + (NSPointingDeviceType)currentPointingDeviceType { return currentPointingDeviceType; } Modified: trunk/SKMainWindow.m =================================================================== --- trunk/SKMainWindow.m 2024-07-18 22:50:01 UTC (rev 14387) +++ trunk/SKMainWindow.m 2024-07-19 14:30:10 UTC (rev 14388) @@ -81,7 +81,7 @@ } - (void)keyDown:(NSEvent *)event { - if ([event standardModifierFlags] == (NSEventModifierFlagCommand | NSEventModifierFlagOption)) { + if (([event deviceIndependentModifierFlags] & ~NSEventModifierFlagNumericPad) == (NSEventModifierFlagCommand | NSEventModifierFlagOption)) { unichar eventChar = [event firstCharacter]; if (eventChar >= '1' && eventChar <= '9') { NSArray *windows = [self tabbedWindows]; Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2024-07-18 22:50:01 UTC (rev 14387) +++ trunk/SKPDFView.m 2024-07-19 14:30:10 UTC (rev 14388) @@ -1751,8 +1751,9 @@ - (void)keyDown:(NSEvent *)theEvent { unichar eventChar = [theEvent firstCharacter]; - NSUInteger modifiers = [theEvent standardModifierFlags]; - + NSUInteger modifiers = [theEvent deviceIndependentModifierFlags] & ~NSEventModifierFlagCapsLock; + NSUInteger standardModifiers = modifiers & ~NSEventModifierFlagNumericPad & ~NSEventModifierFlagFunction; + if (pdfvFlags.presentationMode) { // Presentation mode if ([[self scrollView] hasHorizontalScroller] == NO && @@ -1759,7 +1760,7 @@ (eventChar == NSRightArrowFunctionKey) && (modifiers == 0)) { [self goToNextPage:self]; } else if ([[self scrollView] hasHorizontalScroller] == NO && - (eventChar == NSLeftArrowFunctionKey) && (modifiers == 0)) { + (eventChar == NSLeftArrowFunctionKey) && (standardModifiers == 0)) { [self goToPreviousPage:self]; } else if ((eventChar == 'p') && (modifiers == 0)) { if ([[self delegate] respondsToSelector:@selector(PDFViewTogglePages:)]) @@ -1790,32 +1791,32 @@ } else { // Normal or fullscreen mode if ((eventChar == NSDeleteCharacter || eventChar == NSDeleteFunctionKey) && - (modifiers == 0)) { + (standardModifiers == 0)) { [self delete:self]; - } else if (([self toolMode] == SKToolModeText || [self toolMode] == SKToolModeNote) && currentAnnotation && editor == nil && IS_ENTER(eventChar) && (modifiers == 0)) { + } else if (([self toolMode] == SKToolModeText || [self toolMode] == SKToolModeNote) && currentAnnotation && editor == nil && IS_ENTER(eventChar) && (standardModifiers == 0)) { [self editCurrentAnnotation:self]; } else if (([self toolMode] == SKToolModeText || [self toolMode] == SKToolModeNote) && - (eventChar == SKEscapeCharacter) && (modifiers == NSEventModifierFlagOption)) { + (eventChar == SKEscapeCharacter) && (standardModifiers == NSEventModifierFlagOption)) { [self setCurrentAnnotation:nil]; } else if (([self toolMode] == SKToolModeText || [self toolMode] == SKToolModeNote) && - (eventChar == NSTabCharacter) && (modifiers == NSEventModifierFlagOption)) { + (eventChar == NSTabCharacter) && (standardModifiers == NSEventModifierFlagOption)) { [self selectNextCurrentAnnotation:self]; // backtab is a bit inconsistent, it seems Shift+Tab gives a Shift-BackTab key event, I would have expected either Shift-Tab (as for the raw event) or BackTab (as for most shift-modified keys) } else if (([self toolMode] == SKToolModeText || [self toolMode] == SKToolModeNote) && - (((eventChar == NSBackTabCharacter) && ((modifiers & ~NSEventModifierFlagShift) == NSEventModifierFlagOption)) || - ((eventChar == NSTabCharacter) && (modifiers == (NSEventModifierFlagOption | NSEventModifierFlagShift))))) { + (((eventChar == NSBackTabCharacter) && ((standardModifiers & ~NSEventModifierFlagShift) == NSEventModifierFlagOption)) || + ((eventChar == NSTabCharacter) && (standardModifiers == (NSEventModifierFlagOption | NSEventModifierFlagShift))))) { [self selectPreviousCurrentAnnotation:self]; - } else if ([self hasReadingBar] && IS_ARROW(eventChar) && (modifiers == moveReadingBarModifiers)) { + } else if ([self hasReadingBar] && IS_ARROW(eventChar) && (standardModifiers == moveReadingBarModifiers)) { [self doMoveReadingBarForKey:eventChar]; - } else if ([self hasReadingBar] && IS_UP_DOWN_ARROW(eventChar) && (modifiers == resizeReadingBarModifiers)) { + } else if ([self hasReadingBar] && IS_UP_DOWN_ARROW(eventChar) && (standardModifiers == resizeReadingBarModifiers)) { [self doResizeReadingBarForKey:eventChar]; - } else if (IS_LEFT_RIGHT_ARROW(eventChar) && (modifiers == (NSEventModifierFlagOption | NSEventModifierFlagCommand))) { + } else if (IS_LEFT_RIGHT_ARROW(eventChar) && (standardModifiers == (NSEventModifierFlagOption | NSEventModifierFlagCommand))) { [self setToolMode:(toolMode + (eventChar == NSRightArrowFunctionKey ? 1 : TOOL_MODE_COUNT - 1)) % TOOL_MODE_COUNT]; - } else if (IS_UP_DOWN_ARROW(eventChar) && (modifiers == (NSEventModifierFlagOption | NSEventModifierFlagCommand))) { + } else if (IS_UP_DOWN_ARROW(eventChar) && (standardModifiers == (NSEventModifierFlagOption | NSEventModifierFlagCommand))) { [self setAnnotationMode:(annotationMode + (eventChar == NSDownArrowFunctionKey ? 1 : ANNOTATION_MODE_COUNT - 1)) % ANNOTATION_MODE_COUNT]; - } else if ([currentAnnotation isMovable] && IS_ARROW(eventChar) && ((modifiers & ~NSEventModifierFlagShift) == 0)) { + } else if ([currentAnnotation isMovable] && IS_ARROW(eventChar) && ((standardModifiers & ~NSEventModifierFlagShift) == 0)) { [self doMoveCurrentAnnotationForKey:eventChar byAmount:(modifiers & NSEventModifierFlagShift) ? 10.0 : 1.0]; - } else if ([currentAnnotation isResizable] && IS_ARROW(eventChar) && (modifiers == (NSEventModifierFlagOption | NSEventModifierFlagControl) || modifiers == (NSEventModifierFlagShift | NSEventModifierFlagControl))) { + } else if ([currentAnnotation isResizable] && IS_ARROW(eventChar) && (standardModifiers == (NSEventModifierFlagOption | NSEventModifierFlagControl) || standardModifiers == (NSEventModifierFlagShift | NSEventModifierFlagControl))) { [self doResizeCurrentAnnotationForKey:eventChar byAmount:(modifiers & NSEventModifierFlagShift) ? 10.0 : 1.0]; // with some keyboard layouts, e.g. Japanese, the '=' character requires Shift } else if ([currentAnnotation isResizable] && [currentAnnotation isLine] == NO && [currentAnnotation isInk] == NO && (eventChar == '=') && ((modifiers & ~(NSEventModifierFlagOption | NSEventModifierFlagShift)) == NSEventModifierFlagControl)) { @@ -1858,7 +1859,7 @@ if ([[[self window] firstResponder] isDescendantOf:self] == NO) [[self window] makeFirstResponder:self]; - NSUInteger modifiers = [theEvent standardModifierFlags]; + NSUInteger modifiers = [theEvent deviceIndependentModifierFlags] & ~NSEventModifierFlagCapsLock; PDFAreaOfInterest area = [self areaOfInterestForMouse:theEvent]; PDFAnnotation *wasCurrentAnnotation = currentAnnotation; @@ -5263,7 +5264,7 @@ - (PDFAreaOfInterest)areaOfInterestForMouse:(NSEvent *)theEvent { PDFAreaOfInterest area = [super areaOfInterestForMouse:theEvent]; NSPoint p = [theEvent locationInWindow]; - NSInteger modifiers = [theEvent standardModifierFlags]; + NSInteger modifiers = [theEvent deviceIndependentModifierFlags] & NSEventModifierFlagCapsLock; if ([[self document] isLocked]) { } else if (NSPointInRect(p, [self convertRect:[self visibleContentRect] toView:nil]) == NO || ([navWindow isVisible] && NSPointInRect([theEvent locationOnScreen], [navWindow frame])) || ([cursorWindow isVisible] && NSPointInRect([theEvent locationOnScreen], [cursorWindow frame]))) { @@ -5382,7 +5383,7 @@ if (theEvent == nil) theEvent = [NSEvent mouseEventWithType:NSEventTypeMouseMoved location:[[self window] mouseLocationOutsideOfEventStream] - modifierFlags:[NSEvent standardModifierFlags] + modifierFlags:[NSEvent modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask timestamp:0 windowNumber:[[self window] windowNumber] context:nil Modified: trunk/SKSecondaryPDFView.m =================================================================== --- trunk/SKSecondaryPDFView.m 2024-07-18 22:50:01 UTC (rev 14387) +++ trunk/SKSecondaryPDFView.m 2024-07-19 14:30:10 UTC (rev 14388) @@ -627,7 +627,7 @@ } - (void)keyDown:(NSEvent *)theEvent { - if ([theEvent firstCharacter] == '?' && ([theEvent standardModifierFlags] & ~NSEventModifierFlagShift) == 0) { + if ([theEvent firstCharacter] == '?' && ([theEvent deviceIndependentModifierFlags] & ~NSEventModifierFlagShift) == 0) { [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(showControlView) object:nil]; if ([controlView superview]) { [controlView removeFromSuperview]; @@ -672,7 +672,7 @@ [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(showControlView) object:nil]; [[self window] makeFirstResponder:self]; - NSUInteger modifiers = [theEvent standardModifierFlags]; + NSUInteger modifiers = [theEvent deviceIndependentModifierFlags]; if (modifiers == NSEventModifierFlagCommand) { @@ -716,7 +716,7 @@ - (PDFAreaOfInterest)areaOfInterestForMouse:(NSEvent *)theEvent { PDFAreaOfInterest area = [super areaOfInterestForMouse:theEvent]; - NSInteger modifiers = [theEvent standardModifierFlags]; + NSInteger modifiers = [theEvent deviceIndependentModifierFlags]; if ([controlView superview] && NSMouseInRect([theEvent locationInView:controlView], [controlView bounds], [controlView isFlipped])) { area = kPDFNoArea; Modified: trunk/SKSnapshotPDFView.m =================================================================== --- trunk/SKSnapshotPDFView.m 2024-07-18 22:50:01 UTC (rev 14387) +++ trunk/SKSnapshotPDFView.m 2024-07-19 14:30:10 UTC (rev 14388) @@ -589,7 +589,7 @@ } - (void)keyDown:(NSEvent *)theEvent { - if ([theEvent firstCharacter] == '?' && ([theEvent standardModifierFlags] & ~NSEventModifierFlagShift) == 0) { + if ([theEvent firstCharacter] == '?' && ([theEvent deviceIndependentModifierFlags] & ~NSEventModifierFlagShift) == 0) { [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(showControlView) object:nil]; if ([controlView superview]) { transientControlView = NO; @@ -635,7 +635,7 @@ [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(showControlView) object:nil]; [[self window] makeFirstResponder:self]; - if ([theEvent standardModifierFlags] == NSEventModifierFlagCommand) { + if ([theEvent deviceIndependentModifierFlags] == NSEventModifierFlagCommand) { [[NSCursor arrowCursor] push]; @@ -656,7 +656,7 @@ [[self delegate] PDFView:self goToExternalDestination:[[PDFDestination alloc] initWithPage:page atPoint:location]]; } - } else if ([theEvent standardModifierFlags] == (NSEventModifierFlagCommand | NSEventModifierFlagShift)) { + } else if ([theEvent deviceIndependentModifierFlags] == (NSEventModifierFlagCommand | NSEventModifierFlagShift)) { [self doPdfsyncWithEvent:theEvent]; @@ -669,7 +669,7 @@ - (PDFAreaOfInterest)areaOfInterestForMouse:(NSEvent *)theEvent { PDFAreaOfInterest area = [super areaOfInterestForMouse:theEvent]; - NSInteger modifiers = [theEvent standardModifierFlags]; + NSInteger modifiers = [theEvent deviceIndependentModifierFlags]; if ([controlView superview] && NSMouseInRect([theEvent locationInView:controlView], [controlView bounds], [controlView isFlipped])) { area = kPDFNoArea; Modified: trunk/SKTextNoteEditor.m =================================================================== --- trunk/SKTextNoteEditor.m 2024-07-18 22:50:01 UTC (rev 14387) +++ trunk/SKTextNoteEditor.m 2024-07-19 14:30:10 UTC (rev 14388) @@ -321,8 +321,8 @@ - (void)keyDown:(NSEvent *)theEvent { unichar eventChar = [theEvent firstCharacter]; - NSUInteger modifiers = [theEvent standardModifierFlags]; - if ((eventChar == '=' || eventChar == NSUpArrowFunctionKey || eventChar == NSDownArrowFunctionKey || eventChar == NSLeftArrowFunctionKey || eventChar == NSRightArrowFunctionKey) && (modifiers & ~(NSEventModifierFlagOption | NSEventModifierFlagShift)) == NSEventModifierFlagControl) + NSUInteger modifiers = [theEvent deviceIndependentModifierFlags]; + if ((eventChar == '=' || eventChar == NSUpArrowFunctionKey || eventChar == NSDownArrowFunctionKey || eventChar == NSLeftArrowFunctionKey || eventChar == NSRightArrowFunctionKey) && (modifiers & ~(NSEventModifierFlagOption | NSEventModifierFlagShift | NSEventModifierFlagNumericPad | NSEventModifierFlagFunction)) == NSEventModifierFlagControl) [[self nextResponder] keyDown:theEvent]; else [super keyDown:theEvent]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-18 22:50:04
|
Revision: 14387 http://sourceforge.net/p/skim-app/code/14387 Author: hofman Date: 2024-07-18 22:50:01 +0000 (Thu, 18 Jul 2024) Log Message: ----------- Use device independent modifiers without numpad or function for standardModifierFlags Modified Paths: -------------- trunk/NSEvent_SKExtensions.m Modified: trunk/NSEvent_SKExtensions.m =================================================================== --- trunk/NSEvent_SKExtensions.m 2024-07-18 22:45:21 UTC (rev 14386) +++ trunk/NSEvent_SKExtensions.m 2024-07-18 22:50:01 UTC (rev 14387) @@ -38,14 +38,12 @@ #import "NSEvent_SKExtensions.h" -#define SKStandardModifierFlagsMask (NSEventModifierFlagCommand | NSEventModifierFlagOption | NSEventModifierFlagShift | NSEventModifierFlagControl) - @implementation NSEvent (SKExtensions) static NSPointingDeviceType currentPointingDeviceType = NSPointingDeviceTypeUnknown; + (NSUInteger)standardModifierFlags { - return [self modifierFlags] & SKStandardModifierFlagsMask; + return [self modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask & ~(NSEventModifierFlagNumericPad | NSEventModifierFlagFunction); } - (NSUInteger)deviceIndependentModifierFlags { @@ -53,7 +51,7 @@ } - (NSUInteger)standardModifierFlags { - return [self modifierFlags] & SKStandardModifierFlagsMask; + return [self modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask & ~(NSEventModifierFlagNumericPad | NSEventModifierFlagFunction); } + (NSPointingDeviceType)currentPointingDeviceType { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-18 22:45:23
|
Revision: 14386 http://sourceforge.net/p/skim-app/code/14386 Author: hofman Date: 2024-07-18 22:45:21 +0000 (Thu, 18 Jul 2024) Log Message: ----------- no need to get standardModifierFlags when only checking for one modifier Modified Paths: -------------- trunk/SKColorSwatch.m trunk/SKMainToolbarController.m trunk/SKMainTouchBarController.m trunk/SKMainWindowController_Actions.m trunk/SKMainWindowController_UI.m trunk/SKPDFView.m Modified: trunk/SKColorSwatch.m =================================================================== --- trunk/SKColorSwatch.m 2024-07-18 09:31:34 UTC (rev 14385) +++ trunk/SKColorSwatch.m 2024-07-18 22:45:21 UTC (rev 14386) @@ -704,7 +704,7 @@ - (NSDragOperation)draggingUpdated:(id <NSDraggingInfo>)sender { NSPoint mouseLoc = [self convertPoint:[sender draggingLocation] fromView:nil]; - BOOL isCopy = ([NSEvent standardModifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask) == NSEventModifierFlagOption; + BOOL isCopy = ([NSEvent modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask) == NSEventModifierFlagOption; BOOL isMove = [sender draggingSource] == self && isCopy == NO; NSInteger i = isCopy || isMove ? [self insertionIndexAtPoint:mouseLoc] : [self colorIndexAtPoint:mouseLoc]; NSDragOperation dragOp = isCopy ? NSDragOperationCopy : NSDragOperationGeneric; @@ -726,7 +726,7 @@ NSPasteboard *pboard = [sender draggingPasteboard]; NSColor *color = [NSColor colorFromPasteboard:pboard]; NSPoint mouseLoc = [self convertPoint:[sender draggingLocation] fromView:nil]; - BOOL isCopy = ([NSEvent standardModifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask) == NSEventModifierFlagOption; + BOOL isCopy = ([NSEvent modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask) == NSEventModifierFlagOption; BOOL isMove = [sender draggingSource] == self && isCopy == NO; NSInteger i = isCopy || isMove ? [self insertionIndexAtPoint:mouseLoc] : [self colorIndexAtPoint:mouseLoc]; if ([self isEnabled] && i != -1 && Modified: trunk/SKMainToolbarController.m =================================================================== --- trunk/SKMainToolbarController.m 2024-07-18 09:31:34 UTC (rev 14385) +++ trunk/SKMainToolbarController.m 2024-07-18 22:45:21 UTC (rev 14386) @@ -1108,7 +1108,7 @@ } - (IBAction)zoomActualPhysical:(id)sender { - ([NSEvent standardModifierFlags] & NSEventModifierFlagOption) ? [mainController.pdfView setPhysicalScaleFactor:1.0] : [mainController.pdfView setScaleFactor:1.0]; + ([NSEvent modifierFlags] & NSEventModifierFlagOption) ? [mainController.pdfView setPhysicalScaleFactor:1.0] : [mainController.pdfView setScaleFactor:1.0]; } - (IBAction)zoomInActualOut:(id)sender { @@ -1116,7 +1116,7 @@ if (tag == -1) [mainController.pdfView zoomOut:sender]; else if (tag == 0) - ([NSEvent standardModifierFlags] & NSEventModifierFlagOption) ? [mainController.pdfView setPhysicalScaleFactor:1.0] : [mainController.pdfView setScaleFactor:1.0]; + ([NSEvent modifierFlags] & NSEventModifierFlagOption) ? [mainController.pdfView setPhysicalScaleFactor:1.0] : [mainController.pdfView setScaleFactor:1.0]; else if (tag == 1) [mainController.pdfView zoomIn:sender]; } @@ -1247,8 +1247,8 @@ - (IBAction)selectColor:(id)sender { PDFAnnotation *annotation = [mainController.pdfView currentAnnotation]; NSColor *newColor = [sender respondsToSelector:@selector(color)] ? [sender color] : [sender respondsToSelector:@selector(representedObject)] ? [sender representedObject] : nil; - BOOL isShift = ([NSEvent standardModifierFlags] & NSEventModifierFlagShift) != 0; - BOOL isAlt = ([NSEvent standardModifierFlags] & NSEventModifierFlagOption) != 0; + BOOL isShift = ([NSEvent modifierFlags] & NSEventModifierFlagShift) != 0; + BOOL isAlt = ([NSEvent modifierFlags] & NSEventModifierFlagOption) != 0; if (isAlt == NO && [sender respondsToSelector:@selector(isAlternate)]) isAlt = [sender isAlternate]; if ([annotation isSkimNote]) { @@ -1263,7 +1263,7 @@ - (IBAction)selectLineWidth:(id)sender { PDFAnnotation *annotation = [mainController.pdfView currentAnnotation]; if ([mainController hasOverview] == NO && [annotation hasBorder]) { - BOOL isShift = ([NSEvent standardModifierFlags] & NSEventModifierFlagShift) != 0; + BOOL isShift = ([NSEvent modifierFlags] & NSEventModifierFlagShift) != 0; [annotation setLineWidth:[sender tag] updateDefaults:isShift]; } } @@ -1273,7 +1273,7 @@ if ([mainController hasOverview] == NO && [annotation isSkimNote] && [annotation isText]) { NSFont *font = [[NSFontManager sharedFontManager] convertFont:[annotation font] toSize:[sender tag]]; [annotation setFont:font]; - if (([NSEvent standardModifierFlags] & NSEventModifierFlagShift)) { + if (([NSEvent modifierFlags] & NSEventModifierFlagShift)) { [[NSUserDefaults standardUserDefaults] setDouble:[font pointSize] forKey:SKFreeTextNoteFontSizeKey]; } } Modified: trunk/SKMainTouchBarController.m =================================================================== --- trunk/SKMainTouchBarController.m 2024-07-18 09:31:34 UTC (rev 14385) +++ trunk/SKMainTouchBarController.m 2024-07-18 22:45:21 UTC (rev 14386) @@ -271,8 +271,8 @@ - (void)colorPickerDidSelectColor:(NSColor *)color { PDFAnnotation *annotation = [mainController.pdfView currentAnnotation]; - BOOL isShift = ([NSEvent standardModifierFlags] & NSEventModifierFlagShift) != 0; - BOOL isAlt = ([NSEvent standardModifierFlags] & NSEventModifierFlagOption) != 0; + BOOL isShift = ([NSEvent modifierFlags] & NSEventModifierFlagShift) != 0; + BOOL isAlt = ([NSEvent modifierFlags] & NSEventModifierFlagOption) != 0; if ([annotation isSkimNote]) { [annotation setColor:color alternate:isAlt updateDefaults:isShift]; } else { @@ -323,7 +323,7 @@ if (tag == 0) { [mainController.pdfView zoomOut:sender]; } else if (tag == 1) { - ([NSEvent standardModifierFlags] & NSEventModifierFlagOption) ? [mainController.pdfView setPhysicalScaleFactor:1.0] : [mainController.pdfView setScaleFactor:1.0]; + ([NSEvent modifierFlags] & NSEventModifierFlagOption) ? [mainController.pdfView setPhysicalScaleFactor:1.0] : [mainController.pdfView setScaleFactor:1.0]; } else if (tag == 2) { [mainController.pdfView zoomIn:sender]; } Modified: trunk/SKMainWindowController_Actions.m =================================================================== --- trunk/SKMainWindowController_Actions.m 2024-07-18 09:31:34 UTC (rev 14385) +++ trunk/SKMainWindowController_Actions.m 2024-07-18 22:45:21 UTC (rev 14386) @@ -104,7 +104,7 @@ if (mwcFlags.updatingColor == 0 && [self hasOverview] == NO && [annotation isSkimNote]) { BOOL isFill = [colorAccessoryView state] == NSControlStateValueOn && [annotation hasInteriorColor]; BOOL isText = [textColorAccessoryView state] == NSControlStateValueOn && [annotation isText]; - BOOL isShift = ([NSEvent standardModifierFlags] & NSEventModifierFlagShift) != 0; + BOOL isShift = ([NSEvent modifierFlags] & NSEventModifierFlagShift) != 0; mwcFlags.updatingColor = 1; [annotation setColor:[sender color] alternate:isFill || isText updateDefaults:isShift]; mwcFlags.updatingColor = 0; @@ -115,7 +115,7 @@ PDFAnnotation *annotation = [pdfView currentAnnotation]; if (mwcFlags.updatingFont == 0 && [self hasOverview] == NO && [annotation isSkimNote] && [annotation isText]) { NSFont *font = [sender convertFont:[annotation font]]; - BOOL isShift = ([NSEvent standardModifierFlags] & NSEventModifierFlagShift) != 0; + BOOL isShift = ([NSEvent modifierFlags] & NSEventModifierFlagShift) != 0; mwcFlags.updatingFont = 1; [annotation setFont:font]; mwcFlags.updatingFont = 0; @@ -132,7 +132,7 @@ NSColor *color = [annotation fontColor]; NSColor *newColor = [[sender convertAttributes:[NSDictionary dictionaryWithObjectsAndKeys:color, NSForegroundColorAttributeName, nil]] valueForKey:NSForegroundColorAttributeName]; if ([newColor isEqual:color] == NO) { - BOOL isShift = ([NSEvent standardModifierFlags] & NSEventModifierFlagShift) != 0; + BOOL isShift = ([NSEvent modifierFlags] & NSEventModifierFlagShift) != 0; mwcFlags.updatingFontAttributes = 1; [annotation setFontColor:newColor]; mwcFlags.updatingFontAttributes = 0; @@ -167,7 +167,7 @@ SKLineChangeAction action = [sender currentLineChangeAction]; PDFAnnotation *annotation = [pdfView currentAnnotation]; if (mwcFlags.updatingLine == 0 && [self hasOverview] == NO && [annotation hasBorder]) { - BOOL isShift = ([NSEvent standardModifierFlags] & NSEventModifierFlagShift) != 0; + BOOL isShift = ([NSEvent modifierFlags] & NSEventModifierFlagShift) != 0; mwcFlags.updatingLine = 1; switch (action) { case SKLineChangeActionLineWidth: Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2024-07-18 09:31:34 UTC (rev 14385) +++ trunk/SKMainWindowController_UI.m 2024-07-18 22:45:21 UTC (rev 14386) @@ -737,8 +737,8 @@ if ([ov isEqual:rightSideController.noteOutlineView]) { NSPasteboard *pboard = [info draggingPasteboard]; if ([pboard canReadObjectForClasses:@[[NSColor class]] options:@{}]) { - BOOL isShift = ([NSEvent standardModifierFlags] & NSEventModifierFlagShift) != 0; - BOOL isAlt = ([NSEvent standardModifierFlags] & NSEventModifierFlagOption) != 0; + BOOL isShift = ([NSEvent modifierFlags] & NSEventModifierFlagShift) != 0; + BOOL isAlt = ([NSEvent modifierFlags] & NSEventModifierFlagOption) != 0; [item setColor:[NSColor colorFromPasteboard:pboard] alternate:isAlt updateDefaults:isShift]; return YES; } Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2024-07-18 09:31:34 UTC (rev 14385) +++ trunk/SKPDFView.m 2024-07-18 22:45:21 UTC (rev 14386) @@ -2421,8 +2421,8 @@ if ([pboard canReadItemWithDataConformingToTypes:@[NSPasteboardTypeColor, SKPasteboardTypeLineStyle]]) { if (highlightAnnotation) { if ([pboard canReadItemWithDataConformingToTypes:@[NSPasteboardTypeColor]]) { - BOOL isShift = ([NSEvent standardModifierFlags] & NSEventModifierFlagShift) != 0; - BOOL isAlt = ([NSEvent standardModifierFlags] & NSEventModifierFlagOption) != 0; + BOOL isShift = ([NSEvent modifierFlags] & NSEventModifierFlagShift) != 0; + BOOL isAlt = ([NSEvent modifierFlags] & NSEventModifierFlagOption) != 0; [highlightAnnotation setColor:[NSColor colorFromPasteboard:pboard] alternate:isAlt updateDefaults:isShift]; performedDrag = YES; } else if ([highlightAnnotation hasBorder]) { @@ -5373,7 +5373,7 @@ else if (toolMode == SKToolModeSelect && (area & kPDFPageArea)) [[NSCursor crosshairCursor] set]; else if (toolMode == SKToolModeMagnify && (area & kPDFPageArea)) - [(([NSEvent standardModifierFlags] & NSEventModifierFlagShift) ? [NSCursor zoomOutCursor] : [NSCursor zoomInCursor]) set]; + [(([NSEvent modifierFlags] & NSEventModifierFlagShift) ? [NSCursor zoomOutCursor] : [NSCursor zoomInCursor]) set]; else [super setCursorForAreaOfInterest:area & ~kPDFIconArea]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-18 09:31:37
|
Revision: 14385 http://sourceforge.net/p/skim-app/code/14385 Author: hofman Date: 2024-07-18 09:31:34 +0000 (Thu, 18 Jul 2024) Log Message: ----------- make sure to set color for template images Modified Paths: -------------- trunk/SKLineInspector.m trunk/SKMainToolbarController.m Modified: trunk/SKLineInspector.m =================================================================== --- trunk/SKLineInspector.m 2024-07-17 16:19:45 UTC (rev 14384) +++ trunk/SKLineInspector.m 2024-07-18 09:31:34 UTC (rev 14385) @@ -189,6 +189,7 @@ [path lineToPoint:NSMakePoint(8.0, 2.0)]; [path closePath]; [path setLineWidth:2.0]; + [[NSColor blackColor] setStroke]; [path stroke]; ); @@ -202,6 +203,7 @@ [path lineToPoint:NSMakePoint(16.0, 2.0)]; [path closePath]; [path setLineWidth:2.0]; + [[NSColor blackColor] setStroke]; [path stroke]; ); Modified: trunk/SKMainToolbarController.m =================================================================== --- trunk/SKMainToolbarController.m 2024-07-17 16:19:45 UTC (rev 14384) +++ trunk/SKMainToolbarController.m 2024-07-18 09:31:34 UTC (rev 14385) @@ -788,6 +788,7 @@ for (NSInteger i = 1; i < 11; i++) { menuItem = [menu addItemWithTitle:@"" action:@selector(selectLineWidth:) target:self tag:i]; NSImage *image = [NSImage imageWithSize:size drawingHandler:^(NSRect r){ + [[NSColor blackColor] setStroke]; NSBezierPath *path = [NSBezierPath bezierPath]; [path setLineWidth:i]; [path moveToPoint:NSMakePoint(0.0, 8.0 + 0.5 * (i % 2))]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-17 16:19:47
|
Revision: 14384 http://sourceforge.net/p/skim-app/code/14384 Author: hofman Date: 2024-07-17 16:19:45 +0000 (Wed, 17 Jul 2024) Log Message: ----------- check for appearance customization once Modified Paths: -------------- trunk/NSGraphics_SKExtensions.m Modified: trunk/NSGraphics_SKExtensions.m =================================================================== --- trunk/NSGraphics_SKExtensions.m 2024-07-17 16:14:20 UTC (rev 14383) +++ trunk/NSGraphics_SKExtensions.m 2024-07-17 16:19:45 UTC (rev 14384) @@ -62,20 +62,15 @@ } void SKRunWithAppearance(id object, void (^code)(void)) { - if (@available(macOS 11.0, *)) { - if ([object respondsToSelector:@selector(effectiveAppearance)]) - [[(id<NSAppearanceCustomization>)object effectiveAppearance] performAsCurrentDrawingAppearance:code]; - else - code(); + if ([object respondsToSelector:@selector(effectiveAppearance)] == NO) { + code(); + } else if (@available(macOS 11.0, *)) { + [[(id<NSAppearanceCustomization>)object effectiveAppearance] performAsCurrentDrawingAppearance:code]; } else if (@available(macOS 10.14, *)) { - NSAppearance *appearance = nil; - if ([object respondsToSelector:@selector(effectiveAppearance)]) { - appearance = [NSAppearance currentAppearance]; - [NSAppearance setCurrentAppearance:[(id<NSAppearanceCustomization>)object effectiveAppearance]]; - } + NSAppearance *appearance = [NSAppearance currentAppearance]; + [NSAppearance setCurrentAppearance:[(id<NSAppearanceCustomization>)object effectiveAppearance]]; code(); - if ([object respondsToSelector:@selector(effectiveAppearance)]) - [NSAppearance setCurrentAppearance:appearance]; + [NSAppearance setCurrentAppearance:appearance]; } else { code(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-17 16:14:22
|
Revision: 14383 http://sourceforge.net/p/skim-app/code/14383 Author: hofman Date: 2024-07-17 16:14:20 +0000 (Wed, 17 Jul 2024) Log Message: ----------- use NSAppearance method when available Modified Paths: -------------- trunk/NSGraphics_SKExtensions.m trunk/SKCompatibility.h Modified: trunk/NSGraphics_SKExtensions.m =================================================================== --- trunk/NSGraphics_SKExtensions.m 2024-07-17 09:31:08 UTC (rev 14382) +++ trunk/NSGraphics_SKExtensions.m 2024-07-17 16:14:20 UTC (rev 14383) @@ -62,7 +62,12 @@ } void SKRunWithAppearance(id object, void (^code)(void)) { - if (@available(macOS 10.14, *)) { + if (@available(macOS 11.0, *)) { + if ([object respondsToSelector:@selector(effectiveAppearance)]) + [[(id<NSAppearanceCustomization>)object effectiveAppearance] performAsCurrentDrawingAppearance:code]; + else + code(); + } else if (@available(macOS 10.14, *)) { NSAppearance *appearance = nil; if ([object respondsToSelector:@selector(effectiveAppearance)]) { appearance = [NSAppearance currentAppearance]; Modified: trunk/SKCompatibility.h =================================================================== --- trunk/SKCompatibility.h 2024-07-17 09:31:08 UTC (rev 14382) +++ trunk/SKCompatibility.h 2024-07-17 16:14:20 UTC (rev 14383) @@ -96,4 +96,8 @@ @property NSTableViewStyle style; @end +@interface NSAppearance (SKBigSurDeclarations) +- (void)performAsCurrentDrawingAppearance:(void (^)(void))block; +@end + #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2024-07-17 09:31:11
|
Revision: 14382 http://sourceforge.net/p/skim-app/code/14382 Author: hofman Date: 2024-07-17 09:31:08 +0000 (Wed, 17 Jul 2024) Log Message: ----------- Expose options to add new notes through selection and to set and/or update text of notes from selection in Notes menu, add default values for preferences Modified Paths: -------------- trunk/Base.lproj/MainMenu.xib trunk/InitialUserDefaults.plist trunk/SKMainWindowController_Actions.h trunk/SKMainWindowController_Actions.m trunk/SKMainWindowController_UI.m trunk/SKPDFView.m trunk/SKStringConstants.h trunk/SKStringConstants.m trunk/de.lproj/MainMenu.strings trunk/en.lproj/MainMenu.strings trunk/es.lproj/MainMenu.strings trunk/fr.lproj/MainMenu.strings trunk/it.lproj/MainMenu.strings trunk/ja.lproj/MainMenu.strings trunk/nl.lproj/MainMenu.strings trunk/pl.lproj/MainMenu.strings trunk/ru.lproj/MainMenu.strings trunk/zh_CN.lproj/MainMenu.strings trunk/zh_TW.lproj/MainMenu.strings Modified: trunk/Base.lproj/MainMenu.xib =================================================================== --- trunk/Base.lproj/MainMenu.xib 2024-07-16 14:01:14 UTC (rev 14381) +++ trunk/Base.lproj/MainMenu.xib 2024-07-17 09:31:08 UTC (rev 14382) @@ -575,6 +575,35 @@ <menuItem isSeparatorItem="YES" id="Rz2-R1-S3M"> <modifierMask key="keyEquivalentModifierMask" command="YES"/> </menuItem> + <menuItem title="Adding Note" id="0SY-XV-MJ6"> + <modifierMask key="keyEquivalentModifierMask"/> + <menu key="submenu" title="Adding Note" id="mRt-Cd-Hqu"> + <items> + <menuItem title="Require Selection" id="fQV-e9-aL8"> + <modifierMask key="keyEquivalentModifierMask"/> + <connections> + <action selector="toggleNewNoteRequiresSelection:" target="-1" id="zY0-n8-Mhr"/> + </connections> + </menuItem> + <menuItem isSeparatorItem="YES" id="3Fh-oG-fp6"/> + <menuItem title="Set Text From Selection" tag="2" id="LFo-FX-uJN"> + <modifierMask key="keyEquivalentModifierMask"/> + <connections> + <action selector="toggleUpdateContentsFromEnclosedText:" target="-1" id="BWu-Ke-hvw"/> + </connections> + </menuItem> + <menuItem title="Update Text When Dragging" tag="1" id="vJT-dX-1b5"> + <modifierMask key="keyEquivalentModifierMask"/> + <connections> + <action selector="toggleUpdateContentsFromEnclosedText:" target="-1" id="KrN-vr-fIu"/> + </connections> + </menuItem> + </items> + </menu> + </menuItem> + <menuItem isSeparatorItem="YES" id="8cB-UN-KPY"> + <modifierMask key="keyEquivalentModifierMask" command="YES"/> + </menuItem> <menuItem title="Edit Note" id="691"> <modifierMask key="keyEquivalentModifierMask"/> <connections> Modified: trunk/InitialUserDefaults.plist =================================================================== --- trunk/InitialUserDefaults.plist 2024-07-16 14:01:14 UTC (rev 14381) +++ trunk/InitialUserDefaults.plist 2024-07-17 09:31:08 UTC (rev 14382) @@ -234,6 +234,10 @@ <true/> <key>SKGrammarCheckingEnabled</key> <false/> + <key>SKNewNoteRequiresSelection</key> + <false/> + <key>SKDisableUpdateContentsFromEnclosedText</key> + <integer>0</integer> </dict> <key>ResettableKeys</key> <dict> Modified: trunk/SKMainWindowController_Actions.h =================================================================== --- trunk/SKMainWindowController_Actions.h 2024-07-16 14:01:14 UTC (rev 14381) +++ trunk/SKMainWindowController_Actions.h 2024-07-17 09:31:08 UTC (rev 14382) @@ -117,6 +117,8 @@ - (IBAction)searchNotes:(nullable id)sender; - (IBAction)toggleFullscreen:(nullable id)sender; - (IBAction)togglePresentation:(nullable id)sender; +- (IBAction)toggleNewNoteRequiresSelection:(id)sender; +- (IBAction)toggleUpdateContentsFromEnclosedText:(id)sender; - (IBAction)performFit:(nullable id)sender; - (IBAction)password:(nullable id)sender; - (IBAction)chooseTransition:(nullable id)sender; Modified: trunk/SKMainWindowController_Actions.m =================================================================== --- trunk/SKMainWindowController_Actions.m 2024-07-16 14:01:14 UTC (rev 14381) +++ trunk/SKMainWindowController_Actions.m 2024-07-17 09:31:08 UTC (rev 14382) @@ -1125,6 +1125,19 @@ [self enterPresentation]; } +- (IBAction)toggleNewNoteRequiresSelection:(id)sender { + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + [sud setBool:NO == [sud boolForKey:SKNewNoteRequiresSelectionKey] forKey:SKNewNoteRequiresSelectionKey]; +} + +- (IBAction)toggleUpdateContentsFromEnclosedText:(id)sender { + NSUserDefaults *sud = [NSUserDefaults standardUserDefaults]; + NSInteger value = [sud integerForKey:SKDisableUpdateContentsFromEnclosedTextKey]; + NSInteger option = [sender tag]; + value = value >= option ? 0 : option; + [sud setInteger:value forKey:SKDisableUpdateContentsFromEnclosedTextKey]; +} + - (IBAction)performFindPanelAction:(id)sender { if ([self interactionMode] == SKPresentationMode) { NSBeep(); Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2024-07-16 14:01:14 UTC (rev 14381) +++ trunk/SKMainWindowController_UI.m 2024-07-17 09:31:08 UTC (rev 14382) @@ -1926,6 +1926,14 @@ } else if (action == @selector(toggleAutoResizeNoteRows:)) { [menuItem setState:mwcFlags.autoResizeNoteRows ? NSControlStateValueOn : NSControlStateValueOff]; return YES; + } else if (action == @selector(toggleNewNoteRequiresSelection:)) { + [menuItem setState:[[NSUserDefaults standardUserDefaults] boolForKey:SKNewNoteRequiresSelectionKey] ? NSControlStateValueOn : NSControlStateValueOff]; + return YES; + } else if (action == @selector(toggleUpdateContentsFromEnclosedText:)) { + NSInteger value = [[NSUserDefaults standardUserDefaults] integerForKey:SKDisableUpdateContentsFromEnclosedTextKey]; + NSInteger option = [menuItem tag]; + [menuItem setState:value < option ? NSControlStateValueOn : NSControlStateValueOff]; + return option == 2 || value < 2; } else if (action == @selector(performFindPanelAction:)) { if ([self interactionMode] == SKPresentationMode) return NO; Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2024-07-16 14:01:14 UTC (rev 14381) +++ trunk/SKPDFView.m 2024-07-17 09:31:08 UTC (rev 14382) @@ -134,7 +134,6 @@ #define SKMoveReadingBarModifiersKey @"SKMoveReadingBarModifiers" #define SKResizeReadingBarModifiersKey @"SKResizeReadingBarModifiers" -#define SKNewNoteRequiresSelectionKey @"SKNewNoteRequiresSelection" #define SKUseToolModeCursorsKey @"SKUseToolModeCursors" #define SKMagnifyWithMousePressedKey @"SKMagnifyWithMousePressed" #define SKPacerSpeedKey @"SKPacerSpeed" Modified: trunk/SKStringConstants.h =================================================================== --- trunk/SKStringConstants.h 2024-07-16 14:01:14 UTC (rev 14381) +++ trunk/SKStringConstants.h 2024-07-17 09:31:08 UTC (rev 14382) @@ -131,6 +131,7 @@ extern NSString *SKDisableModificationDateKey; extern NSString *SKDisableAnimationsKey; extern NSString *SKDisableUpdateContentsFromEnclosedTextKey; +extern NSString *SKNewNoteRequiresSelectionKey; extern NSString *SKCaseInsensitiveSearchKey; extern NSString *SKWholeWordSearchKey; extern NSString *SKCaseInsensitiveNoteSearchKey; Modified: trunk/SKStringConstants.m =================================================================== --- trunk/SKStringConstants.m 2024-07-16 14:01:14 UTC (rev 14381) +++ trunk/SKStringConstants.m 2024-07-17 09:31:08 UTC (rev 14382) @@ -131,6 +131,7 @@ NSString *SKDisableModificationDateKey = @"SKDisableModificationDate"; NSString *SKDisableAnimationsKey = @"SKDisableAnimations"; NSString *SKDisableUpdateContentsFromEnclosedTextKey = @"SKDisableUpdateContentsFromEnclosedText"; +NSString *SKNewNoteRequiresSelectionKey = @"SKNewNoteRequiresSelection"; NSString *SKCaseInsensitiveSearchKey = @"SKCaseInsensitiveSearch"; NSString *SKWholeWordSearchKey = @"SKWholeWordSearch"; NSString *SKCaseInsensitiveNoteSearchKey = @"SKCaseInsensitiveNoteSearch"; Modified: trunk/de.lproj/MainMenu.strings =================================================================== (Binary files differ) Modified: trunk/en.lproj/MainMenu.strings =================================================================== (Binary files differ) Modified: trunk/es.lproj/MainMenu.strings =================================================================== (Binary files differ) Modified: trunk/fr.lproj/MainMenu.strings =================================================================== (Binary files differ) Modified: trunk/it.lproj/MainMenu.strings =================================================================== (Binary files differ) Modified: trunk/ja.lproj/MainMenu.strings =================================================================== (Binary files differ) Modified: trunk/nl.lproj/MainMenu.strings =================================================================== (Binary files differ) Modified: trunk/pl.lproj/MainMenu.strings =================================================================== (Binary files differ) Modified: trunk/ru.lproj/MainMenu.strings =================================================================== (Binary files differ) Modified: trunk/zh_CN.lproj/MainMenu.strings =================================================================== (Binary files differ) Modified: trunk/zh_TW.lproj/MainMenu.strings =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |