1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28// MARKER(update_precomp.py): autogen include statement, do not remove
29#include "precompiled_vcl.hxx"
30
31#include "aqua/salinst.h"
32
33#include "aqua11ywrapperscrollarea.h"
34#include "aqua11ywrapperscrollbar.h"
35#include "aqua11yrolehelper.h"
36
37// Wrapper for AXScrollArea role
38
39@implementation AquaA11yWrapperScrollArea : AquaA11yWrapper
40
41-(id)scrollBarWithOrientation:(NSString *)orientation {
42    AquaA11yWrapper * theScrollBar = nil;
43    NSAutoreleasePool * pool = [ [ NSAutoreleasePool alloc ] init ];
44    NSArray * elementChildren = [ self accessibilityAttributeValue: NSAccessibilityChildrenAttribute ];
45    if ( [ elementChildren count ] > 0 ) {
46        NSEnumerator * enumerator = [ elementChildren objectEnumerator ];
47        id child;
48        while ( ( child = [ enumerator nextObject ] ) ) {
49            AquaA11yWrapper * element = ( AquaA11yWrapper * ) child;
50            if ( [ element isKindOfClass: [ AquaA11yWrapperScrollBar class ] ] ) {
51                AquaA11yWrapperScrollBar * scrollBar = (AquaA11yWrapperScrollBar *) element;
52                if ( [ [ scrollBar orientationAttribute ] isEqualToString: orientation ] ) {
53                    theScrollBar = scrollBar;
54                    break;
55                }
56            }
57        }
58    }
59    [ pool release ];
60    return theScrollBar;
61}
62
63-(id)verticalScrollBarAttribute {
64    return [ self scrollBarWithOrientation: NSAccessibilityVerticalOrientationValue ];
65}
66
67-(id)horizontalScrollBarAttribute {
68    return [ self scrollBarWithOrientation: NSAccessibilityHorizontalOrientationValue ];
69}
70
71-(NSArray *)accessibilityAttributeNames {
72    // Default Attributes
73    NSMutableArray * attributeNames = [ NSMutableArray arrayWithArray: [ super accessibilityAttributeNames ] ];
74    // Special Attributes and removing unwanted attributes depending on role
75    [ attributeNames removeObject: NSAccessibilityEnabledAttribute ];
76    [ attributeNames addObjectsFromArray: [ NSArray arrayWithObjects:
77            NSAccessibilityContentsAttribute,
78            NSAccessibilityVerticalScrollBarAttribute,
79            NSAccessibilityHorizontalScrollBarAttribute,
80            nil ]
81    ];
82    return attributeNames;
83}
84
85@end
86