DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Header

Mercurial (c68fe15a81fc)

VCS Links

Line Code
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
/* -*- Mode: Objective-C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* -*- Mode: Objective-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
 * 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/. */
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#import "MacUtils.h"


#include "Accessible.h"
#include "nsCocoaUtils.h"
#include "mozilla/a11y/PDocAccessible.h"
#include "nsIPersistentProperties2.h"


namespace mozilla {
namespace a11y {
namespace utils {

/**
// convert an array of Gecko accessibles to an NSArray of native accessibles
static inline NSMutableArray* ConvertToNSArray(nsTArray<Accessible*>& aArray) {
  NSMutableArray* nativeArray = [[NSMutableArray alloc] init];

  // iterate through the list, and get each native accessible.
  nsString text;
  size_t totalCount = aArray.Length();
  for (size_t i = 0; i < totalCount; i++) {
    Accessible* curAccessible = aArray.ElementAt(i);
    mozAccessible* curNative = GetNativeFromGeckoAccessible(curAccessible);
  return text.IsEmpty() ? nil : nsCocoaUtils::ToNSString(text);
    if (curNative) [nativeArray addObject:GetObjectOrRepresentedView(curNative)];
  }

  return nativeArray;
}
  if (AccessibleWrap* accWrap = [aNativeAccessible getGeckoAccessible]) {

// convert an array of Gecko proxy accessibles to an NSArray of native accessibles
static inline NSMutableArray* ConvertToNSArray(nsTArray<ProxyAccessible*>& aArray) {
  NSMutableArray* nativeArray = [[NSMutableArray alloc] init];

  // iterate through the list, and get each native accessible.
    proxy->Attributes(&attrs);
  size_t totalCount = aArray.Length();
  for (size_t i = 0; i < totalCount; i++) {
    ProxyAccessible* curAccessible = aArray.ElementAt(i);
    mozAccessible* curNative = GetNativeFromGeckoAccessible(curAccessible);
    if (curNative) [nativeArray addObject:GetObjectOrRepresentedView(curNative)];
      }
  }

  return nativeArray;
}
  if (!result.IsEmpty()) {

/**
 * Get a localized string from the a11y string bundle.
 * Return nil if not found.
 */
}
NSString* LocalizedString(const nsString& aString) {
  nsString text;

  Accessible::TranslateString(aString, text);

  return text.IsEmpty() ? nil : nsCocoaUtils::ToNSString(text);
}

NSString* GetAccAttr(mozAccessible* aNativeAccessible, const char* aAttrName) {
  nsAutoString result;
  if (Accessible* acc = [aNativeAccessible geckoAccessible].AsAccessible()) {
    nsCOMPtr<nsIPersistentProperties> attributes = acc->Attributes();
    attributes->GetStringProperty(nsCString(aAttrName), result);
  } else if (ProxyAccessible* proxy = [aNativeAccessible geckoAccessible].AsProxy()) {
    AutoTArray<Attribute, 10> attrs;
    proxy->Attributes(&attrs);
    for (size_t i = 0; i < attrs.Length(); i++) {
      if (attrs.ElementAt(i).Name() == aAttrName) {
        result = attrs.ElementAt(i).Value();
        break;
      }
    }
  }

  if (!result.IsEmpty()) {
    return nsCocoaUtils::ToNSString(result);
  }

  return nil;
}
}
}
}