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"
22 class nsIWebBrowserChrome
;
30 // Script "BarProp" object
31 class BarProp
: public nsISupports
,
35 explicit BarProp(nsGlobalWindow
*aWindow
);
37 NS_DECL_CYCLE_COLLECTING_ISUPPORTS
38 NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(BarProp
)
40 nsPIDOMWindow
* GetParentObject() const;
43 WrapObject(JSContext
* aCx
) MOZ_OVERRIDE
;
45 virtual bool GetVisible(ErrorResult
& aRv
) = 0;
46 virtual void SetVisible(bool aVisible
, ErrorResult
& aRv
) = 0;
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
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
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
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
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
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
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
;
126 } // namespace mozilla
128 #endif /* mozilla_dom_BarProps_h */