Revision: 16587
          http://sourceforge.net/p/skim-app/code/16587
Author:   hofman
Date:     2026-10-01 22:05:43 +0000 (Thu, 01 Oct 2026)
Log Message:
-----------
static functions for checking set of types

Modified Paths:
--------------
    trunk/SkimNotes/PDFAnnotation_SKNExtensions.m

Modified: trunk/SkimNotes/PDFAnnotation_SKNExtensions.m
===================================================================
--- trunk/SkimNotes/PDFAnnotation_SKNExtensions.m       2026-10-01 17:11:51 UTC 
(rev 16586)
+++ trunk/SkimNotes/PDFAnnotation_SKNExtensions.m       2026-10-01 22:05:43 UTC 
(rev 16587)
@@ -279,10 +279,24 @@
 
 #endif
 
+static BOOL isMarkupType(NSString *type) {
+    static NSSet *markupTypes = nil;
+    if (markupTypes == nil)
+        markupTypes = [[NSSet alloc] initWithObjects:SKNHighlightString, 
SKNUnderlineString, SKNStrikeOutString, SKNMarkUpString, SKNSquigglyString, 
nil];
+    return [markupTypes containsObject:type];
+}
+
+static BOOL isNoteType(NSString *type) {
+    static NSSet *noteTypes = nil;
+    if (noteTypes == nil)
+        noteTypes = [[NSSet alloc] initWithObjects:SKNNoteString, 
SKNTextString, SKNStampString, nil];
+    return [noteTypes containsObject:type];
+}
+
 static inline Class SKNAnnotationClassForType(NSString *type) {
     if ([type isKindOfClass:[NSString class]] == NO)
         return Nil;
-    else if ([type isEqualToString:SKNNoteString] || [type 
isEqualToString:SKNTextString] || [type isEqualToString:SKNStampString])
+    else if (isNoteType(type))
         return [SKNPDFAnnotationNote class];
 #ifndef SKIMNOTES_USE_LEGACY_PDFANNOTATION_SUBCLASSES
     else
@@ -296,7 +310,7 @@
         return [PDFAnnotationCircle class];
     else if ([type isEqualToString:SKNSquareString])
         return [PDFAnnotationSquare class];
-    else if ([type isEqualToString:SKNHighlightString] || [type 
isEqualToString:SKNMarkUpString] || [type isEqualToString:SKNUnderlineString] 
|| [type isEqualToString:SKNStrikeOutString] || [type 
isEqualToString:SKNSquigglyString])
+    else if (isMarkupType(type]))
         return [PDFAnnotationMarkup class];
     else if ([type isEqualToString:SKNLineString])
         return [PDFAnnotationLine class];
@@ -476,7 +490,7 @@
             if ([alignment respondsToSelector:@selector(integerValue)])
                 [self setAlignment:SKNTextAlignmentFromAlignment([alignment 
integerValue])];
             
-        } else if ([type isEqualToString:SKNHighlightString] || [type 
isEqualToString:SKNMarkUpString] || [type isEqualToString:SKNUnderlineString] 
|| [type isEqualToString:SKNStrikeOutString] || [type 
isEqualToString:SKNSquigglyString]) {
+        } else if (isMarkupType(type)) {
             
             NSArray *pointStrings = [dict 
objectForKey:SKNPDFAnnotationQuadrilateralPointsKey];
             if ([pointStrings isKindOfClass:arrayClass])
@@ -495,7 +509,7 @@
                 }
             }
             
-        } else if ([type isEqualToString:SKNTextString] || [type 
isEqualToString:SKNStampString] || [type isEqualToString:SKNNoteString]) {
+        } else if (isNoteType(type)) {
             
             NSString *name = [dict objectForKey:SKNPDFAnnotationNameKey];
             NSNumber *iconType = [dict 
objectForKey:SKNPDFAnnotationIconTypeKey];
@@ -741,7 +755,7 @@
             if (fontColor)
                 [dict setObject:fontColor forKey:SKNPDFAnnotationFontColorKey];
             
-        } else if ([type isEqualToString:SKNHighlightString] || [type 
isEqualToString:SKNMarkUpString] || [type isEqualToString:SKNUnderlineString] 
|| [type isEqualToString:SKNStrikeOutString] || [type 
isEqualToString:SKNSquigglyString]) {
+        } else if (isMarkupType(type)) {
             
             if ([self respondsToSelector:@selector(quadrilateralPoints)]) {
                 NSArray *quadPoints = [(id)self quadrilateralPoints];
@@ -824,7 +838,7 @@
                 }
             }
             
-        } else if ([type isEqualToString:SKNTextString] || [type 
isEqualToString:SKNStampString] || [type isEqualToString:SKNNoteString]) {
+        } else if (isNoteType(type)) {
             
             value = [self valueForAnnotationKey:@"/SkimContents"];
             if ([value isKindOfClass:stringClass]) {
@@ -919,10 +933,7 @@
 - (NSString *)string {
 #if defined(PDFKIT_PLATFORM_IOS) || (defined(MAC_OS_X_VERSION_10_13) && 
MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_13 && 
MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10)
     if (@available(macOS 27.0, iOS 27.0, *)) {
-        static NSSet *markupTypes = nil;
-        if (markupTypes == nil)
-            markupTypes = [[NSSet alloc] initWithObjects:SKNHighlightString, 
SKNUnderlineString, SKNStrikeOutString, SKNMarkUpString, SKNSquigglyString, 
nil];
-        if ([markupTypes containsObject:[self type]]) {
+        if (isMarkupType([self type])) {
             return [self valueForAnnotationKey:@"/SkimContents"] ?: [self 
contents];
         }
     }
@@ -953,10 +964,7 @@
 - (void)setString:(NSString *)string {
 #if defined(PDFKIT_PLATFORM_IOS) || (defined(MAC_OS_X_VERSION_10_13) && 
MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_13 && 
MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10)
     if (@available(macOS 27.0, iOS 27.0, *)) {
-        static NSSet *markupTypes = nil;
-        if (markupTypes == nil)
-            markupTypes = [[NSSet alloc] initWithObjects:SKNHighlightString, 
SKNUnderlineString, SKNStrikeOutString, SKNMarkUpString, SKNSquigglyString, 
nil];
-        if ([markupTypes containsObject:[self type]]) {
+        if (isMarkupType([self type])) {
             if (string)
                 [self setValue:[string copy] 
forAnnotationKey:@"/SkimContents"];
             else

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to