Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
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/. */
6 /* BarProps are the collection of little properties of DOM windows whose
7 only property of their own is "visible". They describe the window
8 chrome which can be made visible or not through JavaScript by setting
9 the appropriate property (window.menubar.visible)
10 */
12 #ifndef mozilla_dom_BarProps_h
13 #define mozilla_dom_BarProps_h
15 #include "mozilla/Attributes.h"
16 #include "nsCycleCollectionParticipant.h"
17 #include "nsWrapperCache.h"
18 #include "nsAutoPtr.h"
19 #include "nsPIDOMWindow.h"
21 class nsGlobalWindow;
22 class nsIWebBrowserChrome;
24 namespace mozilla {
26 class ErrorResult;
28 namespace dom {
30 // Script "BarProp" object
31 class BarProp : public nsISupports,
32 public nsWrapperCache
33 {
34 public:
35 explicit BarProp(nsGlobalWindow *aWindow);
36 virtual ~BarProp();
38 NS_DECL_CYCLE_COLLECTING_ISUPPORTS
39 NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(BarProp)
41 nsPIDOMWindow* GetParentObject() const;
43 virtual JSObject*
44 WrapObject(JSContext* aCx) MOZ_OVERRIDE;
46 virtual bool GetVisible(ErrorResult& aRv) = 0;
47 virtual void SetVisible(bool aVisible, ErrorResult& aRv) = 0;
49 protected:
50 bool GetVisibleByFlag(uint32_t aChromeFlag, ErrorResult& aRv);
51 void SetVisibleByFlag(bool aVisible, uint32_t aChromeFlag, ErrorResult &aRv);
53 already_AddRefed<nsIWebBrowserChrome> GetBrowserChrome();
55 nsRefPtr<nsGlobalWindow> mDOMWindow;
56 };
58 // Script "menubar" object
59 class MenubarProp MOZ_FINAL : public BarProp
60 {
61 public:
62 explicit MenubarProp(nsGlobalWindow *aWindow);
63 virtual ~MenubarProp();
65 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
66 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
67 };
69 // Script "toolbar" object
70 class ToolbarProp MOZ_FINAL : public BarProp
71 {
72 public:
73 explicit ToolbarProp(nsGlobalWindow *aWindow);
74 virtual ~ToolbarProp();
76 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
77 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
78 };
80 // Script "locationbar" object
81 class LocationbarProp MOZ_FINAL : public BarProp
82 {
83 public:
84 explicit LocationbarProp(nsGlobalWindow *aWindow);
85 virtual ~LocationbarProp();
87 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
88 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
89 };
91 // Script "personalbar" object
92 class PersonalbarProp MOZ_FINAL : public BarProp
93 {
94 public:
95 explicit PersonalbarProp(nsGlobalWindow *aWindow);
96 virtual ~PersonalbarProp();
98 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
99 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
100 };
102 // Script "statusbar" object
103 class StatusbarProp MOZ_FINAL : public BarProp
104 {
105 public:
106 explicit StatusbarProp(nsGlobalWindow *aWindow);
107 virtual ~StatusbarProp();
109 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
110 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
111 };
113 // Script "scrollbars" object
114 class ScrollbarsProp MOZ_FINAL : public BarProp
115 {
116 public:
117 explicit ScrollbarsProp(nsGlobalWindow *aWindow);
118 virtual ~ScrollbarsProp();
120 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
121 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
122 };
124 } // namespace dom
125 } // namespace mozilla
127 #endif /* mozilla_dom_BarProps_h */