From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- widget/gtk/NativeMenuGtk.h | 64 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 widget/gtk/NativeMenuGtk.h (limited to 'widget/gtk/NativeMenuGtk.h') diff --git a/widget/gtk/NativeMenuGtk.h b/widget/gtk/NativeMenuGtk.h new file mode 100644 index 0000000000..3f1f3213c1 --- /dev/null +++ b/widget/gtk/NativeMenuGtk.h @@ -0,0 +1,64 @@ + +/* -*- Mode: c++; tab-width: 2; indent-tabs-mode: nil; -*- */ +/* 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 mozilla_widget_NativeMenuGtk_h +#define mozilla_widget_NativeMenuGtk_h + +#include "mozilla/widget/NativeMenu.h" +#include "mozilla/EventForwards.h" +#include "GRefPtr.h" + +namespace mozilla { + +namespace dom { +class Element; +} + +namespace widget { + +class MenuModel; + +class NativeMenuGtk : public NativeMenu { + public: + // Whether we can use native menu popups on GTK. + static bool CanUse(); + + explicit NativeMenuGtk(dom::Element* aElement); + + // NativeMenu + MOZ_CAN_RUN_SCRIPT_BOUNDARY void ShowAsContextMenu( + nsIFrame* aClickedFrame, const CSSIntPoint& aPosition, + bool aIsContextMenu) override; + bool Close() override; + void ActivateItem(dom::Element* aItemElement, Modifiers aModifiers, + int16_t aButton, ErrorResult& aRv) override; + void OpenSubmenu(dom::Element* aMenuElement) override; + void CloseSubmenu(dom::Element* aMenuElement) override; + RefPtr Element() override; + void AddObserver(NativeMenu::Observer* aObserver) override { + mObservers.AppendElement(aObserver); + } + void RemoveObserver(NativeMenu::Observer* aObserver) override { + mObservers.RemoveElement(aObserver); + } + + MOZ_CAN_RUN_SCRIPT void OnUnmap(); + + protected: + virtual ~NativeMenuGtk(); + + MOZ_CAN_RUN_SCRIPT void FireEvent(EventMessage); + + bool mPoppedUp = false; + RefPtr mNativeMenu; + RefPtr mMenuModel; + nsTArray mObservers; +}; + +} // namespace widget +} // namespace mozilla + +#endif -- cgit v1.2.3