From 40a355a42d4a9444dc753c04c6608dade2f06a23 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 03:13:27 +0200 Subject: Adding upstream version 125.0.1. Signed-off-by: Daniel Baumann --- accessible/ios/AccessibleWrap.mm | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 accessible/ios/AccessibleWrap.mm (limited to 'accessible/ios/AccessibleWrap.mm') 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(GetNativeObject()); +} -- cgit v1.2.3