diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
commit | fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch) | |
tree | 4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /accessible/ios/AccessibleWrap.mm | |
parent | Releasing progress-linux version 124.0.1-1~progress7.99u1. (diff) | |
download | firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip |
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'accessible/ios/AccessibleWrap.mm')
-rw-r--r-- | accessible/ios/AccessibleWrap.mm | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/accessible/ios/AccessibleWrap.mm b/accessible/ios/AccessibleWrap.mm new file mode 100644 index 0000000000..576e854c60 --- /dev/null +++ b/accessible/ios/AccessibleWrap.mm @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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/. */ + +#include "AccessibleWrap.h" +#include "LocalAccessible-inl.h" + +#import "MUIAccessible.h" +#import "MUIRootAccessible.h" + +using namespace mozilla::a11y; + +//----------------------------------------------------- +// construction +//----------------------------------------------------- +AccessibleWrap::AccessibleWrap(nsIContent* aContent, DocAccessible* aDoc) + : LocalAccessible(aContent, aDoc), + mNativeObject(nil), + mNativeInited(false) {} + +void AccessibleWrap::Shutdown() { + // this ensures we will not try to re-create the native object. + mNativeInited = true; + + // we really intend to access the member directly. + if (mNativeObject) { + [mNativeObject expire]; + [mNativeObject release]; + mNativeObject = nil; + } + + LocalAccessible::Shutdown(); +} + +id AccessibleWrap::GetNativeObject() { + if (!mNativeInited && !IsDefunct()) { + Class type = IsRoot() ? [MUIRootAccessible class] : [MUIAccessible class]; + mNativeObject = [[type alloc] initWithAccessible:this]; + } + + mNativeInited = true; + + return mNativeObject; +} + +void AccessibleWrap::GetNativeInterface(void** aOutInterface) { + *aOutInterface = static_cast<void*>(GetNativeObject()); +} |