Revision: 16501
http://sourceforge.net/p/skim-app/code/16501
Author: hofman
Date: 2026-09-19 17:06:07 +0000 (Sat, 19 Sep 2026)
Log Message:
-----------
implement setString: for PDFAnnotation of type Widget properly
Modified Paths:
--------------
trunk/SkimNotes/PDFAnnotation_SKNExtensions.m
Modified: trunk/SkimNotes/PDFAnnotation_SKNExtensions.m
===================================================================
--- trunk/SkimNotes/PDFAnnotation_SKNExtensions.m 2026-09-18 16:00:33 UTC
(rev 16500)
+++ trunk/SkimNotes/PDFAnnotation_SKNExtensions.m 2026-09-19 17:06:07 UTC
(rev 16501)
@@ -946,32 +946,50 @@
}
- (NSString *)string {
- if ([[self type] isEqualToString:SKNWidgetString]) {
- if ([self respondsToSelector:@selector(valueForAnnotationKey:)]) {
- SKNPDFWidgetType widgetType;
- if ([self respondsToSelector:@selector(widgetFieldType)])
- widgetType = SKNPDFWidgetTypeFromAnnotationValue([self
widgetFieldType]);
+ if ([[self type] isEqualToString:SKNWidgetString] == NO) {
+ return [self contents];
+ } else if ([self respondsToSelector:@selector(valueForAnnotationKey:)]) {
+ SKNPDFWidgetType widgetType;
+ if ([self respondsToSelector:@selector(widgetFieldType)])
+ widgetType = SKNPDFWidgetTypeFromAnnotationValue([self
widgetFieldType]);
+ else
+ widgetType = SKNPDFWidgetTypeFromAnnotationValue([self
valueForAnnotationKey:@"/FT"]);
+ if (widgetType == kSKNPDFWidgetTypeButton) {
+ if ([self respondsToSelector:@selector(buttonWidgetState)])
+ return [NSString stringWithFormat:@"%ld", (long)[self
buttonWidgetState]];
else
- widgetType = SKNPDFWidgetTypeFromAnnotationValue([self
valueForAnnotationKey:@"/FT"]);
- if (widgetType == kSKNPDFWidgetTypeButton) {
- if ([self respondsToSelector:@selector(buttonWidgetState)])
- return [NSString stringWithFormat:@"%ld", (long)[self
buttonWidgetState]];
- else if ([self
respondsToSelector:@selector(valueForAnnotationKey:)])
- return [[self valueForAnnotationKey:@"/V"] isEqual:@"Off"]
? @"0" : @"1";
- } else {
- if ([self respondsToSelector:@selector(widgetStringValue)])
- return [self widgetStringValue];
- else if ([self
respondsToSelector:@selector(valueForAnnotationKey:)])
- return [self valueForAnnotationKey:@"/V"];
- }
+ return [[self valueForAnnotationKey:@"/V"] isEqual:@"Off"] ?
@"0" : @"1";
+ } else {
+ if ([self respondsToSelector:@selector(widgetStringValue)])
+ return [self widgetStringValue];
+ else
+ return [self valueForAnnotationKey:@"/V"];
}
- return nil;
}
- return [self contents];
+ return nil;
}
- (void)setString:(NSString *)string {
- [self setContents:string];
+ if ([[self type] isEqualToString:SKNWidgetString] == NO) {
+ [self setContents:string];
+ } else if ([self
respondsToSelector:@selector(setValue:forAnnotationKey:)]) {
+ SKNPDFWidgetType widgetType;
+ if ([self respondsToSelector:@selector(widgetFieldType)])
+ widgetType = SKNPDFWidgetTypeFromAnnotationValue([self
widgetFieldType]);
+ else
+ widgetType = SKNPDFWidgetTypeFromAnnotationValue([self
valueForAnnotationKey:@"/FT"]);
+ if (widgetType == kSKNPDFWidgetTypeButton) {
+ if ([self respondsToSelector:@selector(setButtonWidgetState:)])
+ [self setButtonWidgetState:[string integerValue]];
+ else
+ [self setValue:[string boolValue] ? @"On" : @"Off"
forAnnotationKey:@"/V"];
+ } else {
+ if ([self respondsToSelector:@selector(setWidgetStringValue:)])
+ [self setWidgetStringValue:string];
+ else
+ [self setValue:string forAnnotationKey:@"/V"];
+ }
+ }
}
+ (NSArray *)pointsFromSkimNotePath:(PDFKitPlatformBezierPath *)path {
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