зеркало из https://github.com/mozilla/gecko-dev.git
138 строки
6.4 KiB
C
138 строки
6.4 KiB
C
|
/* -*- 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 <glib.h>
|
||
|
#include <gdk/gdk.h>
|
||
|
|
||
|
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
|