1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef mozilla_a11y_Platform_h
#define mozilla_a11y_Platform_h
#include <stdint.h>
#include "nsStringFwd.h"
#include "Units.h"
#if defined(ANDROID)
# include "nsTArray.h"
#endif
#ifdef MOZ_WIDGET_COCOA
# include "mozilla/a11y/Role.h"
# include "nsTArray.h"
#endif
namespace mozilla {
namespace a11y {
class Accessible;
class RemoteAccessible;
enum EPlatformDisabledState {
ePlatformIsForceEnabled = -1,
ePlatformIsEnabled = 0,
ePlatformIsDisabled = 1
};
/**
* Return the platform disabled state.
*/
EPlatformDisabledState PlatformDisabledState();
#ifdef MOZ_ACCESSIBILITY_ATK
/**
* Perform initialization that should be done as soon as possible, in order
* to minimize startup time.
* XXX: this function and the next defined in ApplicationAccessibleWrap.cpp
*/
void PreInit();
#endif
#if defined(MOZ_ACCESSIBILITY_ATK) || defined(XP_DARWIN)
/**
* Is platform accessibility enabled.
* Only used on Linux, MacOS and iOS for now.
*/
bool ShouldA11yBeEnabled();
#endif
#if defined(XP_WIN)
/*
* Name of platform service that instantiated accessibility
*/
void SetInstantiator(const uint32_t aInstantiatorPid);
bool GetInstantiator(nsIFile** aOutInstantiator);
#endif
/**
* Called to initialize platform specific accessibility support.
* Note this is called after internal accessibility support is initialized.
*/
void PlatformInit();
/**
* Shutdown platform accessibility.
* Note this is called before internal accessibility support is shutdown.
*/
void PlatformShutdown();
/**
* called when a new RemoteAccessible is created, so the platform may setup a
* wrapper for it, or take other action.
*/
void ProxyCreated(RemoteAccessible* aProxy);
/**
* Called just before a RemoteAccessible is destroyed so its wrapper can be
* disposed of and other action taken.
*/
void ProxyDestroyed(RemoteAccessible*);
/**
* Called when an event is fired on an Accessible so that platforms may fire
* events if appropriate.
*/
void PlatformEvent(Accessible* aTarget, uint32_t aEventType);
void PlatformStateChangeEvent(Accessible* aTarget, uint64_t aState,
bool aEnabled);
void PlatformFocusEvent(Accessible* aTarget);
void PlatformCaretMoveEvent(Accessible* aTarget, int32_t aOffset,
bool aIsSelectionCollapsed, int32_t aGranularity,
bool aFromUser);
void PlatformTextChangeEvent(Accessible* aTarget, const nsAString& aStr,
int32_t aStart, uint32_t aLen, bool aIsInsert,
bool aFromUser);
void PlatformShowHideEvent(Accessible* aTarget, Accessible* aParent,
bool aInsert, bool aFromUser);
void PlatformSelectionEvent(Accessible* aTarget, Accessible* aWidget,
uint32_t aType);
#if defined(ANDROID)
void PlatformScrollingEvent(Accessible* aTarget, uint32_t aEventType,
uint32_t aScrollX, uint32_t aScrollY,
uint32_t aMaxScrollX, uint32_t aMaxScrollY);
void PlatformAnnouncementEvent(Accessible* aTarget,
const nsAString& aAnnouncement,
uint16_t aPriority);
bool LocalizeString(const nsAString& aToken, nsAString& aLocalized);
#endif
#ifdef MOZ_WIDGET_COCOA
class TextRange;
void PlatformTextSelectionChangeEvent(Accessible* aTarget,
const nsTArray<TextRange>& aSelection);
void PlatformRoleChangedEvent(Accessible* aTarget, const a11y::role& aRole,
uint8_t aRoleMapEntryIndex);
#endif
// Get the cache domains needed by any known clients interacting with Gecko. If
// any known clients are found, the return value is aCacheDomains bitwise OR'd
// with the required cache domains for those clients. Otherwise, the return
// value is aCacheDomains unaltered.
uint64_t GetCacheDomainsForKnownClients(uint64_t aCacheDomains);
} // namespace a11y
} // namespace mozilla
#endif // mozilla_a11y_Platform_h
|