dom/base/BarProps.h

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:ebb56977e90d
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/. */
5
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 */
11
12 #ifndef mozilla_dom_BarProps_h
13 #define mozilla_dom_BarProps_h
14
15 #include "mozilla/Attributes.h"
16 #include "nsCycleCollectionParticipant.h"
17 #include "nsWrapperCache.h"
18 #include "nsAutoPtr.h"
19 #include "nsPIDOMWindow.h"
20
21 class nsGlobalWindow;
22 class nsIWebBrowserChrome;
23
24 namespace mozilla {
25
26 class ErrorResult;
27
28 namespace dom {
29
30 // Script "BarProp" object
31 class BarProp : public nsISupports,
32 public nsWrapperCache
33 {
34 public:
35 explicit BarProp(nsGlobalWindow *aWindow);
36 virtual ~BarProp();
37
38 NS_DECL_CYCLE_COLLECTING_ISUPPORTS
39 NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(BarProp)
40
41 nsPIDOMWindow* GetParentObject() const;
42
43 virtual JSObject*
44 WrapObject(JSContext* aCx) MOZ_OVERRIDE;
45
46 virtual bool GetVisible(ErrorResult& aRv) = 0;
47 virtual void SetVisible(bool aVisible, ErrorResult& aRv) = 0;
48
49 protected:
50 bool GetVisibleByFlag(uint32_t aChromeFlag, ErrorResult& aRv);
51 void SetVisibleByFlag(bool aVisible, uint32_t aChromeFlag, ErrorResult &aRv);
52
53 already_AddRefed<nsIWebBrowserChrome> GetBrowserChrome();
54
55 nsRefPtr<nsGlobalWindow> mDOMWindow;
56 };
57
58 // Script "menubar" object
59 class MenubarProp MOZ_FINAL : public BarProp
60 {
61 public:
62 explicit MenubarProp(nsGlobalWindow *aWindow);
63 virtual ~MenubarProp();
64
65 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
66 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
67 };
68
69 // Script "toolbar" object
70 class ToolbarProp MOZ_FINAL : public BarProp
71 {
72 public:
73 explicit ToolbarProp(nsGlobalWindow *aWindow);
74 virtual ~ToolbarProp();
75
76 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
77 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
78 };
79
80 // Script "locationbar" object
81 class LocationbarProp MOZ_FINAL : public BarProp
82 {
83 public:
84 explicit LocationbarProp(nsGlobalWindow *aWindow);
85 virtual ~LocationbarProp();
86
87 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
88 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
89 };
90
91 // Script "personalbar" object
92 class PersonalbarProp MOZ_FINAL : public BarProp
93 {
94 public:
95 explicit PersonalbarProp(nsGlobalWindow *aWindow);
96 virtual ~PersonalbarProp();
97
98 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
99 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
100 };
101
102 // Script "statusbar" object
103 class StatusbarProp MOZ_FINAL : public BarProp
104 {
105 public:
106 explicit StatusbarProp(nsGlobalWindow *aWindow);
107 virtual ~StatusbarProp();
108
109 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
110 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
111 };
112
113 // Script "scrollbars" object
114 class ScrollbarsProp MOZ_FINAL : public BarProp
115 {
116 public:
117 explicit ScrollbarsProp(nsGlobalWindow *aWindow);
118 virtual ~ScrollbarsProp();
119
120 virtual bool GetVisible(ErrorResult& aRv) MOZ_OVERRIDE;
121 virtual void SetVisible(bool aVisible, ErrorResult& aRv) MOZ_OVERRIDE;
122 };
123
124 } // namespace dom
125 } // namespace mozilla
126
127 #endif /* mozilla_dom_BarProps_h */
128

mercurial