From fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 03:14:29 +0200 Subject: Merging upstream version 125.0.1. Signed-off-by: Daniel Baumann --- widget/gtk/DBusMenu.h | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 widget/gtk/DBusMenu.h (limited to 'widget/gtk/DBusMenu.h') diff --git a/widget/gtk/DBusMenu.h b/widget/gtk/DBusMenu.h new file mode 100644 index 0000000000..d288d02322 --- /dev/null +++ b/widget/gtk/DBusMenu.h @@ -0,0 +1,137 @@ +/* -*- 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_DBusMenu_h +#define mozilla_widget_DBusMenu_h + +#include +#include + +namespace mozilla { + +namespace dom { +class Element; +} + +namespace widget { + +#define DBUSMENU_GLIB_FUNCTIONS \ + FUNC(dbusmenu_menuitem_child_add_position, gboolean, \ + (DbusmenuMenuitem * mi, DbusmenuMenuitem * child, guint position)) \ + FUNC(dbusmenu_menuitem_set_root, void, \ + (DbusmenuMenuitem * mi, gboolean root)) \ + FUNC(dbusmenu_menuitem_child_append, gboolean, \ + (DbusmenuMenuitem * mi, DbusmenuMenuitem * child)) \ + FUNC(dbusmenu_menuitem_child_delete, gboolean, \ + (DbusmenuMenuitem * mi, DbusmenuMenuitem * child)) \ + FUNC(dbusmenu_menuitem_get_children, GList*, (DbusmenuMenuitem * mi)) \ + FUNC(dbusmenu_menuitem_new, DbusmenuMenuitem*, (void)) \ + FUNC(dbusmenu_menuitem_property_get, const gchar*, \ + (DbusmenuMenuitem * mi, const gchar* property)) \ + FUNC(dbusmenu_menuitem_property_get_bool, gboolean, \ + (DbusmenuMenuitem * mi, const gchar* property)) \ + FUNC(dbusmenu_menuitem_property_remove, void, \ + (DbusmenuMenuitem * mi, const gchar* property)) \ + FUNC(dbusmenu_menuitem_property_set, gboolean, \ + (DbusmenuMenuitem * mi, const gchar* property, const gchar* value)) \ + FUNC(dbusmenu_menuitem_property_set_bool, gboolean, \ + (DbusmenuMenuitem * mi, const gchar* property, const gboolean value)) \ + FUNC(dbusmenu_menuitem_property_set_int, gboolean, \ + (DbusmenuMenuitem * mi, const gchar* property, const gint value)) \ + FUNC(dbusmenu_menuitem_show_to_user, void, \ + (DbusmenuMenuitem * mi, guint timestamp)) \ + FUNC(dbusmenu_menuitem_take_children, GList*, (DbusmenuMenuitem * mi)) \ + FUNC(dbusmenu_server_new, DbusmenuServer*, (const gchar* object)) \ + FUNC(dbusmenu_server_set_root, void, \ + (DbusmenuServer * server, DbusmenuMenuitem * root)) \ + FUNC(dbusmenu_server_set_status, void, \ + (DbusmenuServer * server, DbusmenuStatus status)) + +#define DBUSMENU_GTK_FUNCTIONS \ + FUNC(dbusmenu_menuitem_property_set_image, gboolean, \ + (DbusmenuMenuitem * menuitem, const gchar* property, \ + const GdkPixbuf* data)) \ + FUNC(dbusmenu_menuitem_property_set_shortcut, gboolean, \ + (DbusmenuMenuitem * menuitem, guint key, GdkModifierType modifier)) + +typedef struct _DbusmenuMenuitem DbusmenuMenuitem; +typedef struct _DbusmenuServer DbusmenuServer; + +enum DbusmenuStatus { DBUSMENU_STATUS_NORMAL, DBUSMENU_STATUS_NOTICE }; + +#define DBUSMENU_MENUITEM_CHILD_DISPLAY_SUBMENU "submenu" +#define DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY "children-display" +#define DBUSMENU_MENUITEM_PROP_ENABLED "enabled" +#define DBUSMENU_MENUITEM_PROP_ICON_DATA "icon-data" +#define DBUSMENU_MENUITEM_PROP_LABEL "label" +#define DBUSMENU_MENUITEM_PROP_SHORTCUT "shortcut" +#define DBUSMENU_MENUITEM_PROP_TYPE "type" +#define DBUSMENU_MENUITEM_PROP_TOGGLE_STATE "toggle-state" +#define DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE "toggle-type" +#define DBUSMENU_MENUITEM_PROP_VISIBLE "visible" +#define DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW "about-to-show" +#define DBUSMENU_MENUITEM_SIGNAL_EVENT "event" +#define DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED "item-activated" +#define DBUSMENU_MENUITEM_TOGGLE_CHECK "checkmark" +#define DBUSMENU_MENUITEM_TOGGLE_RADIO "radio" +#define DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED 1 +#define DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED 0 +#define DBUSMENU_SERVER_PROP_DBUS_OBJECT "dbus-object" + +class DBusMenuFunctions { + public: + DBusMenuFunctions() = delete; + + static bool Init(); + +#define FUNC(name, type, params) \ + typedef type(*_##name##_fn) params; \ + static _##name##_fn s_##name; + DBUSMENU_GLIB_FUNCTIONS + DBUSMENU_GTK_FUNCTIONS +#undef FUNC +}; + +#define dbusmenu_menuitem_set_root \ + DBusMenuFunctions::s_dbusmenu_menuitem_set_root +#define dbusmenu_menuitem_child_add_position \ + DBusMenuFunctions::s_dbusmenu_menuitem_child_add_position +#define dbusmenu_menuitem_child_append \ + DBusMenuFunctions::s_dbusmenu_menuitem_child_append +#define dbusmenu_menuitem_child_delete \ + DBusMenuFunctions::s_dbusmenu_menuitem_child_delete +#define dbusmenu_menuitem_get_children \ + DBusMenuFunctions::s_dbusmenu_menuitem_get_children +#define dbusmenu_menuitem_new DBusMenuFunctions::s_dbusmenu_menuitem_new +#define dbusmenu_menuitem_property_get \ + DBusMenuFunctions::s_dbusmenu_menuitem_property_get +#define dbusmenu_menuitem_property_get_bool \ + DBusMenuFunctions::s_dbusmenu_menuitem_property_get_bool +#define dbusmenu_menuitem_property_remove \ + DBusMenuFunctions::s_dbusmenu_menuitem_property_remove +#define dbusmenu_menuitem_property_set \ + DBusMenuFunctions::s_dbusmenu_menuitem_property_set +#define dbusmenu_menuitem_property_set_bool \ + DBusMenuFunctions::s_dbusmenu_menuitem_property_set_bool +#define dbusmenu_menuitem_property_set_int \ + DBusMenuFunctions::s_dbusmenu_menuitem_property_set_int +#define dbusmenu_menuitem_show_to_user \ + DBusMenuFunctions::s_dbusmenu_menuitem_show_to_user +#define dbusmenu_menuitem_take_children \ + DBusMenuFunctions::s_dbusmenu_menuitem_take_children +#define dbusmenu_server_new DBusMenuFunctions::s_dbusmenu_server_new +#define dbusmenu_server_set_root DBusMenuFunctions::s_dbusmenu_server_set_root +#define dbusmenu_server_set_status \ + DBusMenuFunctions::s_dbusmenu_server_set_status + +#define dbusmenu_menuitem_property_set_image \ + DBusMenuFunctions::s_dbusmenu_menuitem_property_set_image +#define dbusmenu_menuitem_property_set_shortcut \ + DBusMenuFunctions::s_dbusmenu_menuitem_property_set_shortcut + +} // namespace widget +} // namespace mozilla + +#endif -- cgit v1.2.3