Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=8 sts=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 file,
5 : * You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : #ifndef mozilla_dom_VRDisplayEvent_h_
8 : #define mozilla_dom_VRDisplayEvent_h_
9 :
10 : #include "mozilla/Attributes.h"
11 : #include "mozilla/ErrorResult.h"
12 : #include "mozilla/dom/VRDisplayEventBinding.h"
13 : #include "mozilla/dom/BindingUtils.h"
14 : #include "mozilla/dom/Event.h"
15 :
16 : #include "gfxVR.h"
17 :
18 : struct JSContext;
19 :
20 : namespace mozilla {
21 : namespace gfx {
22 : class VRDisplay;
23 : } // namespace gfx
24 :
25 : namespace dom {
26 :
27 : class VRDisplayEvent final : public Event
28 : {
29 : public:
30 : NS_DECL_ISUPPORTS_INHERITED
31 0 : NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_INHERITED(VRDisplayEvent, Event)
32 :
33 : VRDisplay* Display();
34 : Nullable<VRDisplayEventReason> GetReason() const;
35 :
36 : protected:
37 : virtual ~VRDisplayEvent();
38 : explicit VRDisplayEvent(mozilla::dom::EventTarget* aOwner);
39 : VRDisplayEvent(EventTarget* aOwner,
40 : nsPresContext* aPresContext,
41 : InternalClipboardEvent* aEvent);
42 :
43 : Maybe<VRDisplayEventReason> mReason;
44 : RefPtr<VRDisplay> mDisplay;
45 :
46 : public:
47 :
48 : virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
49 :
50 : static already_AddRefed<VRDisplayEvent> Constructor(mozilla::dom::EventTarget* aOwner, const nsAString& aType, const VRDisplayEventInit& aEventInitDict);
51 :
52 : static already_AddRefed<VRDisplayEvent> Constructor(const GlobalObject& aGlobal, const nsAString& aType, const VRDisplayEventInit& aEventInitDict, ErrorResult& aRv);
53 : };
54 :
55 : } // namespace dom
56 : } // namespace mozilla
57 :
58 : #endif
|