Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/dom/xul/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  XULPopupElement.h   Sprache: C

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


#ifndef XULPopupElement_h__
#define XULPopupElement_h__

#include "XULMenuParentElement.h"
#include "mozilla/Attributes.h"
#include "nsCycleCollectionParticipant.h"
#include "nsINode.h"
#include "nsWrapperCache.h"
#include "nsString.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 {
    GetXULAttr(nsGkAtoms::label, aValue);
  }
  void SetLabel(const nsAString& aValue, ErrorResult& rv) {
    SetXULAttr(nsGkAtoms::label, aValue, rv);
  }

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

  void GetPosition(DOMString& aValue) const {
    GetXULAttr(nsGkAtoms::position, aValue);
  }
  void SetPosition(const nsAString& aValue, ErrorResult& rv) {
    SetXULAttr(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;

  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
C=95 H=100 G=97

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

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.