Revision: 25398
http://sourceforge.net/p/bibdesk/svn/25398
Author: hofman
Date: 2021-01-14 14:55:26 +0000 (Thu, 14 Jan 2021)
Log Message:
-----------
Move lock badge class to separate files
Modified Paths:
--------------
trunk/bibdesk_vendorsrc/amaxwell/FileView/FVPDFIcon.m
trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.xcodeproj/project.pbxproj
Added Paths:
-----------
trunk/bibdesk_vendorsrc/amaxwell/FileView/FVLockBadge.h
trunk/bibdesk_vendorsrc/amaxwell/FileView/FVLockBadge.m
Added: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVLockBadge.h
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVLockBadge.h
(rev 0)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVLockBadge.h 2021-01-14
14:55:26 UTC (rev 25398)
@@ -0,0 +1,47 @@
+//
+// FVLockBadge.h
+// FileView
+//
+// Created by Christiaan Hofman on 01/14/21.
+/*
+ This software is Copyright (c) 2021
+ Christiaa Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface FVLockBadge : NSObject
+
+// returns a cached layer for overlay on an icon
++ (CGLayerRef)lockBadgeWithSize:(NSSize)size;
+
+@end
Added: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVLockBadge.m
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVLockBadge.m
(rev 0)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVLockBadge.m 2021-01-14
14:55:26 UTC (rev 25398)
@@ -0,0 +1,99 @@
+//
+// FVLockBadge.m
+// FileView
+//
+// Created by Christiaan Hofman on 01/14/21.
+/*
+ This software is Copyright (c) 2021
+ Christiaan hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "FVLockBadge.h"
+#import "FVUtilities.h"
+
+@implementation FVLockBadge
+
+static CFMutableDictionaryRef _badges = NULL;
+static const NSUInteger _sizes[] = { 32, 64, 128, 256, 512 };
+
++ (void)initialize
+{
+ FVINITIALIZE(FVLockBadge);
+
+ _badges = CFDictionaryCreateMutable(NULL, 0,
&FVIntegerKeyDictionaryCallBacks, &kCFTypeDictionaryValueCallBacks);
+ NSUInteger i, iMax = sizeof(_sizes) / sizeof(NSUInteger);
+
+ // kLockedBadgeIcon looks much better than kLockedIcon, which gets jagged
quickly
+ NSImage *lockBadge = [[NSWorkspace sharedWorkspace]
iconForFileType:NSFileTypeForHFSTypeCode(kLockedBadgeIcon)];
+
+ for (i = 0; i < iMax; i++) {
+
+ CGRect dstRect = CGRectMake(0, 0, _sizes[i], _sizes[i]);
+
+ NSGraphicsContext *windowContext =
FVWindowGraphicsContextWithSize(NSRectFromCGRect(dstRect).size);
+ NSParameterAssert(nil != windowContext);
+
+ CGLayerRef layer = CGLayerCreateWithContext([windowContext
graphicsPort], dstRect.size, NULL);
+ CGContextRef context = CGLayerGetContext(layer);
+
+ // don't use CGContextClearRect with non-window/bitmap contexts
+ CGContextSetRGBFillColor(context, 0, 0, 0, 0);
+ CGContextFillRect(context, dstRect);
+
+ // rect needs to be a square, or else the aspect ratio of the arrow is
wrong
+ // rect needs to be the same size as the full icon, or the scale of
the arrow is wrong
+
+ [NSGraphicsContext saveGraphicsState];
+ [NSGraphicsContext setCurrentContext:[NSGraphicsContext
graphicsContextWithGraphicsPort:context flipped:NO]];
+
+ // We don't know the size of the actual link arrow (and it changes
with the size of dstRect), so fine-tuning the drawing isn't really possible as
far as I can see.
+ [lockBadge drawInRect:NSRectFromCGRect(dstRect)];
+
+ [NSGraphicsContext restoreGraphicsState];
+
+ CFDictionarySetValue(_badges, (void *)_sizes[i], layer);
+ CGLayerRelease(layer);
+ }
+}
+
++ (CGLayerRef)lockBadgeWithSize:(NSSize)size;
+{
+ NSUInteger i, iMax = sizeof(_sizes) / sizeof(NSUInteger);
+ for (i = 0; i < iMax; i++) {
+
+ NSUInteger height = _sizes[i];
+ if (height > size.height)
+ return (CGLayerRef)CFDictionaryGetValue(_badges, (void *)height);
+ }
+ return (CGLayerRef)CFDictionaryGetValue(_badges, (void *)_sizes[iMax - 1]);
+}
+
+@end
Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVPDFIcon.m
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVPDFIcon.m 2021-01-14
10:26:24 UTC (rev 25397)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVPDFIcon.m 2021-01-14
14:55:26 UTC (rev 25398)
@@ -38,6 +38,7 @@
#import "FVPDFIcon.h"
#import <pthread.h>
+#import "FVLockBadge.h"
#import "_FVMappedDataProvider.h"
#import "_FVSplitSet.h"
@@ -47,13 +48,6 @@
static _FVSplitSet *_releaseableIcons = nil;
static CGLayerRef _pageLayer = NULL;
-@interface FVLockBadge : NSObject
-
-// returns a cached layer for overlay on an icon
-+ (CGLayerRef)lockBadgeWithSize:(NSSize)size;
-
-@end
-
@implementation FVPDFIcon
+ (void)initialize
@@ -714,63 +708,3 @@
@end
-
-@implementation FVLockBadge
-
-static CFMutableDictionaryRef _badges = NULL;
-static const NSUInteger _sizes[] = { 32, 64, 128, 256, 512 };
-
-+ (void)initialize
-{
- FVINITIALIZE(FVLockBadge);
-
- _badges = CFDictionaryCreateMutable(NULL, 0,
&FVIntegerKeyDictionaryCallBacks, &kCFTypeDictionaryValueCallBacks);
- NSUInteger i, iMax = sizeof(_sizes) / sizeof(NSUInteger);
-
- // kLockedBadgeIcon looks much better than kLockedIcon, which gets jagged
quickly
- NSImage *lockBadge = [[NSWorkspace sharedWorkspace]
iconForFileType:NSFileTypeForHFSTypeCode(kLockedBadgeIcon)];
-
- for (i = 0; i < iMax; i++) {
-
- CGRect dstRect = CGRectMake(0, 0, _sizes[i], _sizes[i]);
-
- NSGraphicsContext *windowContext =
FVWindowGraphicsContextWithSize(NSRectFromCGRect(dstRect).size);
- NSParameterAssert(nil != windowContext);
-
- CGLayerRef layer = CGLayerCreateWithContext([windowContext
graphicsPort], dstRect.size, NULL);
- CGContextRef context = CGLayerGetContext(layer);
-
- // don't use CGContextClearRect with non-window/bitmap contexts
- CGContextSetRGBFillColor(context, 0, 0, 0, 0);
- CGContextFillRect(context, dstRect);
-
- // rect needs to be a square, or else the aspect ratio of the arrow is
wrong
- // rect needs to be the same size as the full icon, or the scale of
the arrow is wrong
-
- [NSGraphicsContext saveGraphicsState];
- [NSGraphicsContext setCurrentContext:[NSGraphicsContext
graphicsContextWithGraphicsPort:context flipped:NO]];
-
- // We don't know the size of the actual link arrow (and it changes
with the size of dstRect), so fine-tuning the drawing isn't really possible as
far as I can see.
- [lockBadge drawInRect:NSRectFromCGRect(dstRect)];
-
- [NSGraphicsContext restoreGraphicsState];
-
- CFDictionarySetValue(_badges, (void *)_sizes[i], layer);
- CGLayerRelease(layer);
- }
-}
-
-
-+ (CGLayerRef)lockBadgeWithSize:(NSSize)size;
-{
- NSUInteger i, iMax = sizeof(_sizes) / sizeof(NSUInteger);
- for (i = 0; i < iMax; i++) {
-
- NSUInteger height = _sizes[i];
- if (height > size.height)
- return (CGLayerRef)CFDictionaryGetValue(_badges, (void *)height);
- }
- return (CGLayerRef)CFDictionaryGetValue(_badges, (void *)_sizes[iMax - 1]);
-}
-
-@end
Modified:
trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.xcodeproj/project.pbxproj
===================================================================
---
trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.xcodeproj/project.pbxproj
2021-01-14 10:26:24 UTC (rev 25397)
+++
trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.xcodeproj/project.pbxproj
2021-01-14 14:55:26 UTC (rev 25398)
@@ -53,6 +53,8 @@
CE89233F0D7CBB1A006D514C /* FVOperation.m in Sources */ = {isa
= PBXBuildFile; fileRef = CE05D5E90D7C22550034C2A8 /* FVOperation.m */; };
CEA831140DC1FAB500B551D1 /* FVAccessibilityIconElement.h in
Headers */ = {isa = PBXBuildFile; fileRef = CEA831120DC1FAB500B551D1 /*
FVAccessibilityIconElement.h */; };
CEA831150DC1FAB500B551D1 /* FVAccessibilityIconElement.m in
Sources */ = {isa = PBXBuildFile; fileRef = CEA831130DC1FAB500B551D1 /*
FVAccessibilityIconElement.m */; };
+ CEC48F2325B090ED00A2B40A /* FVLockBadge.m in Sources */ = {isa
= PBXBuildFile; fileRef = CEC48F2125B090ED00A2B40A /* FVLockBadge.m */; };
+ CEC48F2425B090ED00A2B40A /* FVLockBadge.h in Headers */ = {isa
= PBXBuildFile; fileRef = CEC48F2225B090ED00A2B40A /* FVLockBadge.h */; };
CEC9932D1072B6C50089F20D /* FVPreviewer.xib in Resources */ =
{isa = PBXBuildFile; fileRef = CEC9932C1072B6C50089F20D /* FVPreviewer.xib */;
};
CEFC19B10F693E8B00B2AEE6 /* FileView.h in Headers */ = {isa =
PBXBuildFile; fileRef = CEFC19B00F693E8B00B2AEE6 /* FileView.h */; settings =
{ATTRIBUTES = (Public, ); }; };
CEFC1CF60F6AB84000B2AEE6 /* _FVDocumentDescription.h in Headers
*/ = {isa = PBXBuildFile; fileRef = CEFC1CE90F6AB84000B2AEE6 /*
_FVDocumentDescription.h */; };
@@ -207,6 +209,8 @@
CE65FC5B0F72578D0089F9DC /* _FVSplitSet.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= _FVSplitSet.m; sourceTree = "<group>"; };
CEA831120DC1FAB500B551D1 /* FVAccessibilityIconElement.h */ =
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = FVAccessibilityIconElement.h; sourceTree = "<group>"; };
CEA831130DC1FAB500B551D1 /* FVAccessibilityIconElement.m */ =
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.objc; path = FVAccessibilityIconElement.m; sourceTree = "<group>";
};
+ CEC48F2125B090ED00A2B40A /* FVLockBadge.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= FVLockBadge.m; sourceTree = "<group>"; };
+ CEC48F2225B090ED00A2B40A /* FVLockBadge.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
FVLockBadge.h; sourceTree = "<group>"; };
CEC9932C1072B6C50089F20D /* FVPreviewer.xib */ = {isa =
PBXFileReference; lastKnownFileType = file.xib; path = FVPreviewer.xib;
sourceTree = "<group>"; };
CEFC19B00F693E8B00B2AEE6 /* FileView.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
FileView.h; sourceTree = "<group>"; };
CEFC1CE90F6AB84000B2AEE6 /* _FVDocumentDescription.h */ = {isa
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path
= _FVDocumentDescription.h; sourceTree = "<group>"; };
@@ -411,8 +415,8 @@
CE05D4840D7B37A80034C2A8 /* Icons */ = {
isa = PBXGroup;
children = (
+ CEFC1D260F6ABA2300B2AEE6 /* FVAliasBadge.h */,
CEFC1D250F6ABA2300B2AEE6 /* FVAliasBadge.m */,
- CEFC1D260F6ABA2300B2AEE6 /* FVAliasBadge.h */,
CEFC1D270F6ABA2300B2AEE6 /* FVBaseIcon.h */,
CEFC1D280F6ABA2300B2AEE6 /* FVBaseIcon.m */,
F9A2D3EA0CCBE13F002F517B /* FVFinderIcon.h */,
@@ -423,6 +427,8 @@
CE05D4690D7B36DD0034C2A8 /* FVIcon_Private.m */,
F9A2D3E60CCBE12B002F517B /* FVImageIcon.h */,
F9A2D3E70CCBE12B002F517B /* FVImageIcon.m */,
+ CEC48F2225B090ED00A2B40A /* FVLockBadge.h */,
+ CEC48F2125B090ED00A2B40A /* FVLockBadge.m */,
CE05D46A0D7B36DD0034C2A8 /* FVMIMEIcon.h */,
CE05D46B0D7B36DD0034C2A8 /* FVMIMEIcon.m */,
CE05D46C0D7B36DD0034C2A8 /* FVMovieIcon.h */,
@@ -431,8 +437,8 @@
F9A2D3EF0CCBE14E002F517B /* FVPDFIcon.m */,
CE05D46E0D7B36DD0034C2A8 /*
FVPlaceholderImage.h */,
CE05D46F0D7B36DD0034C2A8 /*
FVPlaceholderImage.m */,
+ F9A2D4270CCBE6BA002F517B /* FVQuickLookIcon.h
*/,
F946921C0CA5700800AC2772 /* FVQuickLookIcon.m
*/,
- F9A2D4270CCBE6BA002F517B /* FVQuickLookIcon.h
*/,
F9A2D3F20CCBE15C002F517B /* FVTextIcon.h */,
F9A2D3F30CCBE15C002F517B /* FVTextIcon.m */,
F92C7BAA0D280626004409D8 /* FVWebViewIcon.h */,
@@ -642,6 +648,7 @@
CEFC1CFE0F6AB84000B2AEE6 /*
FVCGColorSpaceDescription.h in Headers */,
CEFC1D000F6AB84000B2AEE6 /*
FVCGImageDescription.h in Headers */,
CEFC1D090F6AB8AD00B2AEE6 /* FVBitmapContext.h
in Headers */,
+ CEC48F2425B090ED00A2B40A /* FVLockBadge.h in
Headers */,
CEFC1D0B0F6AB8AD00B2AEE6 /*
FVCGImageUtilities.h in Headers */,
CEFC1D0D0F6AB8AD00B2AEE6 /* FVImageBuffer.h in
Headers */,
CEFC1D170F6AB94F00B2AEE6 /* FVObject.h in
Headers */,
@@ -815,6 +822,7 @@
CEFC1D290F6ABA2300B2AEE6 /* FVAliasBadge.m in
Sources */,
CEFC1D2C0F6ABA2300B2AEE6 /* FVBaseIcon.m in
Sources */,
CEFC1F6E0F6AD4B300B2AEE6 /* FVQuickLookIcon.m
in Sources */,
+ CEC48F2325B090ED00A2B40A /* FVLockBadge.m in
Sources */,
CE65FC5D0F72578D0089F9DC /*
_FVMappedDataProvider.m in Sources */,
CE65FC5F0F72578D0089F9DC /* _FVSplitSet.m in
Sources */,
CE07BD4310E789FE00686ACC /*
_FVFullScreenContentView.m in Sources */,
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit