1231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block/* 2231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * Copyright (C) 2009 Apple Inc. All rights reserved. 3231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * 4231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * Redistribution and use in source and binary forms, with or without 5231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * modification, are permitted provided that the following conditions 6231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * are met: 7231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * 8231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * 1. Redistributions of source code must retain the above copyright 9231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * notice, this list of conditions and the following disclaimer. 10231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * 2. Redistributions in binary form must reproduce the above copyright 11231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * notice, this list of conditions and the following disclaimer in the 12231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * documentation and/or other materials provided with the distribution. 13231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 14231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * its contributors may be used to endorse or promote products derived 15231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * from this software without specific prior written permission. 16231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * 17231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 18231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 21231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block */ 28231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 29231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 30231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#ifndef AccessibilityMediaControls_h 31231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define AccessibilityMediaControls_h 32231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 33231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if ENABLE(VIDEO) 34231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 35231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "AccessibilitySlider.h" 36231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "MediaControlElements.h" 37231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 38231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blocknamespace WebCore { 39231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 40643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass AccessibilityMediaControl : public AccessibilityRenderObject { 41231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 42643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockpublic: 43643ca7872b450ea4efacab6188849e5aac2ba161Steve Block static PassRefPtr<AccessibilityObject> create(RenderObject*); 44643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual ~AccessibilityMediaControl() { } 45231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 46643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual AccessibilityRole roleValue() const; 47643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool accessibilityIsIgnored() const; 48231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 49643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String title() const; 50643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String accessibilityDescription() const; 51643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String helpText() const; 52231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 53643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockprotected: 54643ca7872b450ea4efacab6188849e5aac2ba161Steve Block AccessibilityMediaControl(RenderObject*); 55643ca7872b450ea4efacab6188849e5aac2ba161Steve Block MediaControlElementType controlType() const; 56643ca7872b450ea4efacab6188849e5aac2ba161Steve Block String controlTypeName() const; 57643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}; 58231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 59231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 60643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass AccessibilityMediaTimeline : public AccessibilitySlider { 61231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 62643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockpublic: 63643ca7872b450ea4efacab6188849e5aac2ba161Steve Block static PassRefPtr<AccessibilityObject> create(RenderObject*); 64643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual ~AccessibilityMediaTimeline() { } 65231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 66643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isMediaTimeline() const { return true; } 67231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 68643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String helpText() const; 69643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String valueDescription() const; 70643ca7872b450ea4efacab6188849e5aac2ba161Steve Block const AtomicString& getAttribute(const QualifiedName& attribute) const; 71231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 72643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockprivate: 73643ca7872b450ea4efacab6188849e5aac2ba161Steve Block AccessibilityMediaTimeline(RenderObject*); 74643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}; 75231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 76231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 77643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass AccessibilityMediaControlsContainer : public AccessibilityMediaControl { 78231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 79643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockpublic: 80643ca7872b450ea4efacab6188849e5aac2ba161Steve Block static PassRefPtr<AccessibilityObject> create(RenderObject*); 81643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual ~AccessibilityMediaControlsContainer() { } 82231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 83643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual AccessibilityRole roleValue() const { return ToolbarRole; } 84643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool accessibilityIsIgnored() const { return false; } 85231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 86643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String helpText() const; 87643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String accessibilityDescription() const; 88231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 89643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockprivate: 90643ca7872b450ea4efacab6188849e5aac2ba161Steve Block AccessibilityMediaControlsContainer(RenderObject*); 91643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool controllingVideoElement() const; 92643ca7872b450ea4efacab6188849e5aac2ba161Steve Block const String elementTypeName() const; 93643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}; 94231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 95231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 96643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass AccessibilityMediaTimeDisplay : public AccessibilityMediaControl { 97231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 98643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockpublic: 99643ca7872b450ea4efacab6188849e5aac2ba161Steve Block static PassRefPtr<AccessibilityObject> create(RenderObject*); 100643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual ~AccessibilityMediaTimeDisplay() { } 101231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 102643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual AccessibilityRole roleValue() const { return StaticTextRole; } 103643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool accessibilityIsIgnored() const; 104231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 105643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String stringValue() const; 106643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String accessibilityDescription() const; 107231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 108643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockprivate: 109643ca7872b450ea4efacab6188849e5aac2ba161Steve Block AccessibilityMediaTimeDisplay(RenderObject*); 110643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}; 111231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 112231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 113231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block} // namespace WebCore 114231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 115231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif // ENABLE(VIDEO) 116231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 117231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif // AccessibilityMediaControls_h 118