Revision: 27723 http://sourceforge.net/p/bibdesk/svn/27723 Author: hofman Date: 2022-07-12 17:13:39 +0000 (Tue, 12 Jul 2022) Log Message: ----------- file view accessibility as grid. Add actions to icons for increment and decrement.
Modified Paths: -------------- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.h trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.m trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.h =================================================================== --- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.h 2022-07-12 08:10:43 UTC (rev 27722) +++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.h 2022-07-12 17:13:39 UTC (rev 27723) @@ -56,4 +56,6 @@ - (void)setSelected:(BOOL)selected forIconElement:(FVAccessibilityIconElement *)element; - (void)openIconElement:(FVAccessibilityIconElement *)element; - (void)showMenuForIconElement:(FVAccessibilityIconElement *)element; +- (void)incrementIconElement:(FVAccessibilityIconElement *)element; +- (void)decrementIconElement:(FVAccessibilityIconElement *)element; @end Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.m =================================================================== --- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.m 2022-07-12 08:10:43 UTC (rev 27722) +++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.m 2022-07-12 17:13:39 UTC (rev 27723) @@ -154,7 +154,7 @@ } - (NSArray *)accessibilityActionNames { - return [NSArray arrayWithObjects:NSAccessibilityPressAction, NSAccessibilityShowMenuAction, nil]; + return [NSArray arrayWithObjects:NSAccessibilityPressAction, NSAccessibilityShowMenuAction, NSAccessibilityIncrementAction, NSAccessibilityDecrementAction, nil]; } - (NSString *)accessibilityActionDescription:(NSString *)anAction { @@ -166,6 +166,10 @@ [_parent openIconElement:self]; else if ([anAction isEqualToString:NSAccessibilityShowMenuAction]) [_parent showMenuForIconElement:self]; + else if ([anAction isEqualToString:NSAccessibilityIncrementAction]) + [_parent incrementIconElement:self]; + else if ([anAction isEqualToString:NSAccessibilityDecrementAction]) + [_parent decrementIconElement:self]; } - (BOOL)isAccessibilityElement { @@ -241,12 +245,24 @@ [_parent setSelected:focused forIconElement:self]; } -- (void)accessibilityPerformPress { +- (BOOL)accessibilityPerformPress { [_parent openIconElement:self]; + return YES; } -- (void)accessibilityPerformShowMenu { +- (BOOL)accessibilityPerformShowMenu { [_parent showMenuForIconElement:self]; + return YES; } +- (BOOL)accessibilityPerformIncrement { + [_parent incrementIconElement:self]; + return YES; +} + +- (BOOL)accessibilityPerformDecrement { + [_parent decrementIconElement:self]; + return YES; +} + @end Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m =================================================================== --- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m 2022-07-12 08:10:43 UTC (rev 27722) +++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m 2022-07-12 17:13:39 UTC (rev 27723) @@ -184,6 +184,13 @@ - (NSColor *)tertiaryLabelColor; @end +enum { + NSAccessibilityOrientationUnknown, + NSAccessibilityOrientationVertical, + NSAccessibilityOrientationHorizontal +}; +typedef NSInteger NSAccessibilityOrientation; + #endif #if !defined(MAC_OS_X_VERSION_10_10) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10 @@ -4545,15 +4552,15 @@ - (NSArray *)accessibilityAttributeNames { static NSArray *attributes = nil; if (attributes == nil) - attributes = [[[super accessibilityAttributeNames] arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:NSAccessibilityChildrenAttribute, NSAccessibilitySelectedChildrenAttribute, nil]] retain]; + attributes = [[[super accessibilityAttributeNames] arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:NSAccessibilityChildrenAttribute, NSAccessibilitySelectedChildrenAttribute, NSAccessibilityRowCountAttribute, NSAccessibilityColumnCountAttribute, NSAccessibilityOrientationAttribute, NSAccessibilityOrderedByRowAttribute, nil]] retain]; return attributes; } - (id)accessibilityAttributeValue:(NSString *)attribute { if ([attribute isEqualToString:NSAccessibilityRoleAttribute]) { - return NSAccessibilityGroupRole; + return NSAccessibilityGridRole; } else if ([attribute isEqualToString:NSAccessibilityRoleDescriptionAttribute]) { - return NSAccessibilityRoleDescription(NSAccessibilityGroupRole, nil); + return NSAccessibilityRoleDescription(NSAccessibilityGridRole, nil); } else if ([attribute isEqualToString:NSAccessibilityChildrenAttribute]) { NSMutableArray *children = [NSMutableArray array]; NSUInteger i, count = [self numberOfIcons]; @@ -4568,6 +4575,14 @@ i = [_selectionIndexes indexGreaterThanIndex:i]; } return NSAccessibilityUnignoredChildren(children); + } else if ([attribute isEqualToString:NSAccessibilityRowCountAttribute]) { + return [NSNumber numberWithInteger:_numberOfRows]; + } else if ([attribute isEqualToString:NSAccessibilityColumnCountAttribute]) { + return [NSNumber numberWithInteger:_numberOfColumns]; + } else if ([attribute isEqualToString:NSAccessibilityOrientationAttribute]) { + return _fvFlags.displayMode == FVDisplayModeRow ? NSAccessibilityHorizontalOrientationValue : NSAccessibilityVerticalOrientationValue; + } else if ([attribute isEqualToString:NSAccessibilityOrderedByRowAttribute]) { + return [NSNumber numberWithBool:_fvFlags.displayMode != FVDisplayModeColumn]; } else { return [super accessibilityAttributeValue:attribute]; } @@ -4603,11 +4618,11 @@ } - (NSString *)accessibilityRole { - return NSAccessibilityGroupRole; + return NSAccessibilityGridRole; } - (NSString *)accessibilityRoleDescription { - return NSAccessibilityRoleDescription(NSAccessibilityGroupRole, nil); + return NSAccessibilityRoleDescription(NSAccessibilityGridRole, nil); } - (NSArray *)accessibilityChildren { @@ -4628,6 +4643,29 @@ return NSAccessibilityUnignoredChildren(children); } +- (void)setAccessibilitySelectedChildren:(NSArray *)elements { + NSMutableIndexSet *indexes = [NSMutableIndexSet indexSet]; + for (FVAccessibilityIconElement *element in elements) + [indexes addIndex:[element index]]; + [self setSelectionIndexes:indexes]; +} + +- (NSInteger)accessibilityRowCount { + return _numberOfRows; +} + +- (NSInteger)accessibilityColumnCount { + return _numberOfColumns; +} + +- (BOOL)isAccessibilityOrderedByRow { + return _fvFlags.displayMode != FVDisplayModeColumn; +} + +- (NSAccessibilityOrientation)accessibilityOrientation { + return _fvFlags.displayMode == FVDisplayModeRow ? NSAccessibilityOrientationHorizontal : NSAccessibilityOrientationVertical; +} + - (NSURL *)URLForIconElement:(FVAccessibilityIconElement *)element { return [self URLAtIndex:[element index]]; } @@ -4680,6 +4718,26 @@ } } +- (void)incrementIconElement:(FVAccessibilityIconElement *)element { + if ([element index] < [_orderedURLs count]) { + FVIcon *anIcon = [self iconAtIndex:[element index]]; + if ([anIcon currentPageIndex] < [anIcon pageCount]) { + [anIcon showNextPage]; + [self _redisplayIconAfterPageChanged:anIcon]; + } + } +} + +- (void)decrementIconElement:(FVAccessibilityIconElement *)element { + if ([element index] < [_orderedURLs count]) { + FVIcon *anIcon = [self iconAtIndex:[element index]]; + if ([anIcon currentPageIndex] > 1) { + [anIcon showPreviousPage]; + [self _redisplayIconAfterPageChanged:anIcon]; + } + } +} + @end #pragma mark - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Bibdesk-commit mailing list Bibdesk-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bibdesk-commit