1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #ifndef _AtkSocketAccessible_H_
8 #define _AtkSocketAccessible_H_
10 #include "AccessibleWrap.h"
12 // This file gets included by nsAccessibilityService.cpp, which can't include
13 // atk.h (or glib.h), so we can't rely on it being included.
15 extern "C" typedef void (*AtkSocketEmbedType
)(AtkSocket
*, gchar
*);
17 extern "C" typedef void (*AtkSocketEmbedType
)(void*, void*);
24 * Provides a AccessibleWrap wrapper around AtkSocket for out-of-process
27 class AtkSocketAccessible
: public AccessibleWrap
{
29 // Soft references to AtkSocket
30 static AtkSocketEmbedType g_atk_socket_embed
;
32 static GType g_atk_socket_type
;
34 static const char* sATKSocketEmbedSymbol
;
35 static const char* sATKSocketGetTypeSymbol
;
38 * True if the current Atk version supports AtkSocket and it was correctly
41 static bool gCanEmbed
;
43 AtkSocketAccessible(nsIContent
* aContent
, DocAccessible
* aDoc
,
44 const nsCString
& aPlugId
);
46 virtual void Shutdown() override
;
48 virtual void GetNativeInterface(void** aOutAccessible
) override
;
52 } // namespace mozilla