mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-16 23:05:42 +00:00
Bug 1748749 - P3: Move TranslateString to Accessible. r=Jamie
Small refactor to allow action descriptions to be implemented in Accessible. Differential Revision: https://phabricator.services.mozilla.com/D135907
This commit is contained in:
parent
6732b10718
commit
1f5048e73c
@ -8,6 +8,8 @@
|
||||
#include "ARIAMap.h"
|
||||
#include "States.h"
|
||||
#include "mozilla/a11y/HyperTextAccessibleBase.h"
|
||||
#include "mozilla/Components.h"
|
||||
#include "nsIStringBundle.h"
|
||||
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::a11y;
|
||||
@ -248,3 +250,20 @@ void Accessible::GetPositionAndSetSize(int32_t* aPosInSet, int32_t* aSetSize) {
|
||||
*aSetSize = groupInfo->SetSize();
|
||||
}
|
||||
}
|
||||
|
||||
void Accessible::TranslateString(const nsString& aKey, nsAString& aStringOut) {
|
||||
nsCOMPtr<nsIStringBundleService> stringBundleService =
|
||||
components::StringBundle::Service();
|
||||
if (!stringBundleService) return;
|
||||
|
||||
nsCOMPtr<nsIStringBundle> stringBundle;
|
||||
stringBundleService->CreateBundle(
|
||||
"chrome://global-platform/locale/accessible.properties",
|
||||
getter_AddRefs(stringBundle));
|
||||
if (!stringBundle) return;
|
||||
|
||||
nsAutoString xsValue;
|
||||
nsresult rv = stringBundle->GetStringFromName(
|
||||
NS_ConvertUTF16toUTF8(aKey).get(), xsValue);
|
||||
if (NS_SUCCEEDED(rv)) aStringOut.Assign(xsValue);
|
||||
}
|
||||
|
@ -316,6 +316,11 @@ class Accessible {
|
||||
|
||||
virtual HyperTextAccessibleBase* AsHyperTextBase() { return nullptr; }
|
||||
|
||||
/**
|
||||
* Return the localized string for the given key.
|
||||
*/
|
||||
static void TranslateString(const nsString& aKey, nsAString& aStringOut);
|
||||
|
||||
protected:
|
||||
// Some abstracted group utility methods.
|
||||
|
||||
|
@ -282,24 +282,6 @@ KeyBinding LocalAccessible::AccessKey() const {
|
||||
|
||||
KeyBinding LocalAccessible::KeyboardShortcut() const { return KeyBinding(); }
|
||||
|
||||
void LocalAccessible::TranslateString(const nsString& aKey,
|
||||
nsAString& aStringOut) {
|
||||
nsCOMPtr<nsIStringBundleService> stringBundleService =
|
||||
components::StringBundle::Service();
|
||||
if (!stringBundleService) return;
|
||||
|
||||
nsCOMPtr<nsIStringBundle> stringBundle;
|
||||
stringBundleService->CreateBundle(
|
||||
"chrome://global-platform/locale/accessible.properties",
|
||||
getter_AddRefs(stringBundle));
|
||||
if (!stringBundle) return;
|
||||
|
||||
nsAutoString xsValue;
|
||||
nsresult rv = stringBundle->GetStringFromName(
|
||||
NS_ConvertUTF16toUTF8(aKey).get(), xsValue);
|
||||
if (NS_SUCCEEDED(rv)) aStringOut.Assign(xsValue);
|
||||
}
|
||||
|
||||
uint64_t LocalAccessible::VisibilityState() const {
|
||||
if (IPCAccessibilityActive() &&
|
||||
StaticPrefs::accessibility_cache_enabled_AtStartup()) {
|
||||
|
@ -678,11 +678,6 @@ class LocalAccessible : public nsISupports, public Accessible {
|
||||
|
||||
bool IsActiveDescendant(LocalAccessible** aWidget = nullptr) const;
|
||||
|
||||
/**
|
||||
* Return the localized string for the given key.
|
||||
*/
|
||||
static void TranslateString(const nsString& aKey, nsAString& aStringOut);
|
||||
|
||||
/**
|
||||
* Return true if the accessible is defunct.
|
||||
*/
|
||||
|
@ -55,7 +55,7 @@ NSArray<mozAccessible*>* ConvertToNSArray(nsTArray<RemoteAccessible*>& aArray) {
|
||||
NSString* LocalizedString(const nsString& aString) {
|
||||
nsString text;
|
||||
|
||||
LocalAccessible::TranslateString(aString, text);
|
||||
Accessible::TranslateString(aString, text);
|
||||
|
||||
return text.IsEmpty() ? nil : nsCocoaUtils::ToNSString(text);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user