DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Implementation

Mercurial (2d9d0bebb5c6)

VCS Links

BarProp

LocationbarProp

MenubarProp

PersonalbarProp

ScrollbarsProp

StatusbarProp

ToolbarProp

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/* BarProps are the collection of little properties of DOM windows whose
   only property of their own is "visible".  They describe the window
   chrome which can be made visible or not through JavaScript by setting
   the appropriate property (window.menubar.visible)
*/

#ifndef mozilla_dom_BarProps_h
#define mozilla_dom_BarProps_h

#include "mozilla/Attributes.h"
#include "nsCycleCollectionParticipant.h"
#include "nsWrapperCache.h"
#include "nsPIDOMWindow.h"
#include "mozilla/dom/BindingDeclarations.h"

class nsGlobalWindow;
class nsIWebBrowserChrome;

namespace mozilla {

class ErrorResult;

namespace dom {

// Script "BarProp" object
class BarProp : public nsISupports,
                public nsWrapperCache
{
public:
  explicit BarProp(nsGlobalWindow *aWindow);

  NS_DECL_CYCLE_COLLECTING_ISUPPORTS
  NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(BarProp)

  nsPIDOMWindowInner* GetParentObject() const;

  virtual JSObject*
  WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;

  virtual bool GetVisible(CallerType aCallerType, ErrorResult& aRv) = 0;
  virtual void SetVisible(bool aVisible, CallerType aCallerType,
                          ErrorResult& aRv) = 0;

protected:
  virtual ~BarProp();

  bool GetVisibleByFlag(uint32_t aChromeFlag, ErrorResult& aRv);
  void SetVisibleByFlag(bool aVisible, uint32_t aChromeFlag,
                        CallerType aCallerType, ErrorResult &aRv);

  already_AddRefed<nsIWebBrowserChrome> GetBrowserChrome();

  RefPtr<nsGlobalWindow> mDOMWindow;
};

// Script "menubar" object
class MenubarProp final : public BarProp
{
public:
  explicit MenubarProp(nsGlobalWindow *aWindow);
  virtual ~MenubarProp();

  virtual bool GetVisible(CallerType aCallerType, ErrorResult& aRv) override;
  virtual void SetVisible(bool aVisible, CallerType aCallerType,
                          ErrorResult& aRv) override;
};

// Script "toolbar" object
class ToolbarProp final : public BarProp
{
public:
  explicit ToolbarProp(nsGlobalWindow *aWindow);
  virtual ~ToolbarProp();

  virtual bool GetVisible(CallerType aCallerType, ErrorResult& aRv) override;
  virtual void SetVisible(bool aVisible, CallerType aCallerType,
                          ErrorResult& aRv) override;
};

// Script "locationbar" object
class LocationbarProp final : public BarProp
{
public:
  explicit LocationbarProp(nsGlobalWindow *aWindow);
  virtual ~LocationbarProp();

  virtual bool GetVisible(CallerType aCallerType, ErrorResult& aRv) override;
  virtual void SetVisible(bool aVisible, CallerType aCallerType,
                          ErrorResult& aRv) override;
};

// Script "personalbar" object
class PersonalbarProp final : public BarProp
{
public:
  explicit PersonalbarProp(nsGlobalWindow *aWindow);
  virtual ~PersonalbarProp();

  virtual bool GetVisible(CallerType aCallerType, ErrorResult& aRv) override;
  virtual void SetVisible(bool aVisible, CallerType aCallerType,
                          ErrorResult& aRv) override;
};

// Script "statusbar" object
class StatusbarProp final : public BarProp
{
public:
  explicit StatusbarProp(nsGlobalWindow *aWindow);
  virtual ~StatusbarProp();

  virtual bool GetVisible(CallerType aCallerType, ErrorResult& aRv) override;
  virtual void SetVisible(bool aVisible, CallerType aCallerType,
                          ErrorResult& aRv) override;
};

// Script "scrollbars" object
class ScrollbarsProp final : public BarProp
{
public:
  explicit ScrollbarsProp(nsGlobalWindow *aWindow);
  virtual ~ScrollbarsProp();

  virtual bool GetVisible(CallerType aCallerType, ErrorResult& aRv) override;
  virtual void SetVisible(bool aVisible, CallerType aCallerType,
                          ErrorResult& aRv) override;
};

} // namespace dom
} // namespace mozilla

#endif /* mozilla_dom_BarProps_h */