accessible/src/generic/TextLeafAccessible.cpp

branch
TOR_BUG_9701
changeset 3
141e0f1194b1
equal deleted inserted replaced
-1:000000000000 0:500fb589a6bd
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6 #include "TextLeafAccessible.h"
7
8 #include "nsAccUtils.h"
9 #include "DocAccessible.h"
10 #include "Role.h"
11
12 using namespace mozilla::a11y;
13
14 ////////////////////////////////////////////////////////////////////////////////
15 // TextLeafAccessible
16 ////////////////////////////////////////////////////////////////////////////////
17
18 TextLeafAccessible::
19 TextLeafAccessible(nsIContent* aContent, DocAccessible* aDoc) :
20 LinkableAccessible(aContent, aDoc)
21 {
22 mType = eTextLeafType;
23 }
24
25 TextLeafAccessible::~TextLeafAccessible()
26 {
27 }
28
29 role
30 TextLeafAccessible::NativeRole()
31 {
32 nsIFrame* frame = GetFrame();
33 if (frame && frame->IsGeneratedContentFrame())
34 return roles::STATICTEXT;
35
36 return roles::TEXT_LEAF;
37 }
38
39 void
40 TextLeafAccessible::AppendTextTo(nsAString& aText, uint32_t aStartOffset,
41 uint32_t aLength)
42 {
43 aText.Append(Substring(mText, aStartOffset, aLength));
44 }
45
46 ENameValueFlag
47 TextLeafAccessible::Name(nsString& aName)
48 {
49 // Text node, ARIA can't be used.
50 aName = mText;
51 return eNameOK;
52 }
53
54 void
55 TextLeafAccessible::CacheChildren()
56 {
57 // No children for text accessible.
58 }

mercurial