Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/dom/xul/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 3 kB image not shown  

Quelle  XULPopupElement.h

  Sprache: C
 

/* 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/. */


#ifndef XULPopupElement_h_
#define XULPopupElement_h_

#include "XULMenuParentElement.h"
#include "mozilla/Attributes.h"
#include "nsCycleCollectionParticipant.h"
#include "nsINode.h"
#include "nsString.h"
#include "nsWrapperCache.h"
#include "nsXULElement.h"

class nsMenuPopupFrame;
struct JSContext;

namespace mozilla {
class ErrorResult;

namespace dom {

class DOMRect;
class Element;
class Event;
class StringOrOpenPopupOptions;
struct ActivateMenuItemOptions;

nsXULElement* NS_NewXULPopupElement(
    already_AddRefed<mozilla::dom::NodeInfo> aNodeInfo);

class XULPopupElement : public XULMenuParentElement {
 private:
  nsMenuPopupFrame* GetFrame(FlushType);

 public:
  explicit XULPopupElement(already_AddRefed<mozilla::dom::NodeInfo> aNodeInfo)
      : XULMenuParentElement(std::move(aNodeInfo)) {}

  void GetLabel(DOMString& aValue) const { GetAttr(nsGkAtoms::label, aValue); }
  void SetLabel(const nsAString& aValue, ErrorResult& rv) {
    SetAttr(nsGkAtoms::label, aValue, rv);
  }

  bool IsMenu() const { return IsXULElement(nsGkAtoms::menupopup); }

  void GetPosition(DOMString& aValue) const {
    GetAttr(nsGkAtoms::position, aValue);
  }
  void SetPosition(const nsAString& aValue, ErrorResult& rv) {
    SetAttr(nsGkAtoms::position, aValue, rv);
  }

  void OpenPopup(Element* aAnchorElement,
                 const StringOrOpenPopupOptions& aOptions, int32_t aXPos,
                 int32_t aYPos, bool aIsContextMenu, bool aAttributesOverride,
                 Event* aTriggerEvent);

  void OpenPopupAtScreen(int32_t aXPos, int32_t aYPos, bool aIsContextMenu,
                         Event* aTriggerEvent);

  void OpenPopupAtScreenRect(const nsAString& aPosition, int32_t aXPos,
                             int32_t aYPos, int32_t aWidth, int32_t aHeight,
                             bool aIsContextMenu, bool aAttributesOverride,
                             Event* aTriggerEvent);

  void HidePopup(bool aCancel);

  MOZ_CAN_RUN_SCRIPT void ActivateItem(Element& aItemElement,
                                       const ActivateMenuItemOptions& aOptions,
                                       ErrorResult& aRv);

  void GetState(nsString& aState);

  MOZ_CAN_RUN_SCRIPT void PopupOpened(bool aSelectFirstItem);
  MOZ_CAN_RUN_SCRIPT void PopupClosed(bool aDeselectMenu);

  nsINode* GetTriggerNode() const;

  Element* GetAnchorNode() const;

  already_AddRefed<DOMRect> GetOuterScreenRect();

  void MoveTo(int32_t aLeft, int32_t aTop);

  void MoveToAnchor(Element* aAnchorElement, const nsAString& aPosition,
                    int32_t aXPos, int32_t aYPos, bool aAttributesOverride);

  void SizeTo(int32_t aWidth, int32_t aHeight);

  void SetConstraintRect(DOMRectReadOnly& aRect);

  bool IsWaylandDragSource() const;
  bool IsWaylandPopup() const;

  bool IsNativeMenu() const;

  NS_IMPL_FROMNODE_HELPER(XULPopupElement,
                          IsAnyOfXULElements(nsGkAtoms::menupopup,
                                             nsGkAtoms::panel,
                                             nsGkAtoms::tooltip));

 protected:
  virtual ~XULPopupElement() = default;

  JSObject* WrapNode(JSContext* aCx,
                     JS::Handle<JSObject*> aGivenProto) override;
};

}  // namespace dom
}  // namespace mozilla

#endif  // XULPopupElement_h

Messung V0.5 in Prozent
C=95 H=100 G=97

¤ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet am  2026-08-25) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.