Bumping manifests a=b2g-bump
[gecko.git] / dom / base / BarProps.h
blobb7f2642bb2c35508d59d8024e9651652d2470d2f
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)
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
34 public:
35 explicit BarProp(nsGlobalWindow *aWindow);
37 NS_DECL_CYCLE_COLLECTING_ISUPPORTS
38 NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(BarProp)
40 nsPIDOMWindow* GetParentObject() const;
42 virtual JSObject*
43 WrapObject(JSContext* aCx) MOZ_OVERRIDE;
45 virtual bool GetVisible(ErrorResult& aRv) = 0;
46 virtual void SetVisible(bool aVisible, ErrorResult& aRv) = 0;
48 protected:
49 virtual ~BarProp();
51 bool GetVisibleByFlag(uint32_t aChromeFlag, ErrorResult& aRv);
52 void SetVisibleByFlag(bool aVisible, uint32_t aChromeFlag, ErrorResult &aRv);
54 already_AddRefed<nsIWebBrowserChrome> GetBrowserChrome();
56 nsRefPtr<nsGlobalWindow> mDOMWindow;
59 // Script "menubar" object
60 class MenubarProp MOZ_FINAL : public BarProp
62 public:
63 explicit MenubarProp(nsGlobalWindow *aWindow);
64 virtual ~MenubarProp();
66 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
67 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
70 // Script "toolbar" object
71 class ToolbarProp MOZ_FINAL : public BarProp
73 public:
74 explicit ToolbarProp(nsGlobalWindow *aWindow);
75 virtual ~ToolbarProp();
77 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
78 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
81 // Script "locationbar" object
82 class LocationbarProp MOZ_FINAL : public BarProp
84 public:
85 explicit LocationbarProp(nsGlobalWindow *aWindow);
86 virtual ~LocationbarProp();
88 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
89 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
92 // Script "personalbar" object
93 class PersonalbarProp MOZ_FINAL : public BarProp
95 public:
96 explicit PersonalbarProp(nsGlobalWindow *aWindow);
97 virtual ~PersonalbarProp();
99 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
100 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
103 // Script "statusbar" object
104 class StatusbarProp MOZ_FINAL : public BarProp
106 public:
107 explicit StatusbarProp(nsGlobalWindow *aWindow);
108 virtual ~StatusbarProp();
110 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
111 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
114 // Script "scrollbars" object
115 class ScrollbarsProp MOZ_FINAL : public BarProp
117 public:
118 explicit ScrollbarsProp(nsGlobalWindow *aWindow);
119 virtual ~ScrollbarsProp();
121 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
122 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
125 } // namespace dom
126 } // namespace mozilla
128 #endif /* mozilla_dom_BarProps_h */