:right-sidebar: True ContextMenu =================================================================== .. currentmodule:: gi.repository.WebKitWebProcessExtension .. class:: ContextMenu(**properties: ~typing.Any) :no-contents-entry: Superclasses: :class:`~gi.repository.GObject.Object` Represents the context menu in a ``WebKitWebView``. :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu` represents a context menu containing :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenuItem`\s in a ``WebKitWebView``. When a ``WebKitWebView`` is about to display the context menu, it emits the ``WebKitWebView``::context-menu signal, which has the :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu` as an argument. You can modify it, adding new submenus that you can create with :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.new`, adding new :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenuItem`\s with :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.prepend`, :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.append` or :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.insert`, maybe after having removed the existing ones with :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.remove_all`. Constructors ------------ .. rst-class:: interim-class .. class:: ContextMenu :no-index: .. classmethod:: new() -> ~gi.repository.WebKit.ContextMenu Creates a new :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu` object. Creates a new :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu` object to be used as a submenu of an existing :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu`\. The context menu of a ``WebKitWebView`` is created by the view and passed as an argument of ``WebKitWebView``::context-menu signal. To add items to the menu use :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.prepend`, :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.append` or :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.insert`. See also :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.new_with_items` to create a :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu` with a list of initial items. .. classmethod:: new_with_items(items: list[~gi.repository.WebKit.ContextMenuItem]) -> ~gi.repository.WebKit.ContextMenu Creates a new :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu` object with the given items. Creates a new :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu` object to be used as a submenu of an existing :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu` with the given initial items. See also :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.new` :param items: a :obj:`~gi.repository.GLib.List` of :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenuItem` Methods ------- .. rst-class:: interim-class .. class:: ContextMenu :no-index: .. method:: append(item: ~gi.repository.WebKit.ContextMenuItem) -> None Adds ``item`` at the end of the ``menu``\. :param item: the :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenuItem` to add .. method:: first() -> ~gi.repository.WebKit.ContextMenuItem Gets the first item in the ``menu``\. .. method:: get_event() -> ~gi.repository.Gdk.Event Gets the :obj:`~gi.repository.Gdk.Event` that triggered the context menu. This function only returns a valid :obj:`~gi.repository.Gdk.Event` when called for a :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu` passed to ``WebKitWebView``::context-menu signal; in all other cases, :const:`None` is returned. The returned :obj:`~gi.repository.Gdk.Event` is expected to be one of the following types: a ``GdkEventButton`` of type %GDK_BUTTON_PRESS when the context menu was triggered with mouse. a ``GdkEventKey`` of type %GDK_KEY_PRESS if the keyboard was used to show the menu. a generic :obj:`~gi.repository.Gdk.Event` of type %GDK_NOTHING when the :obj:`~gi.repository.Gtk.Widget`\::popup-menu signal was used to show the context menu. .. versionadded:: 2.40 .. method:: get_item_at_position(position: int) -> ~gi.repository.WebKit.ContextMenuItem Gets the item at the given position in the ``menu``\. :param position: the position of the item, counting from 0 .. method:: get_items() -> list[~gi.repository.WebKit.ContextMenuItem] Returns the item list of ``menu``\. .. method:: get_n_items() -> int Gets the length of the ``menu``\. .. method:: get_user_data() -> ~gi.repository.GLib.Variant Gets the user data of ``menu``\. This function can be used from the UI Process to get user data previously set from the Web Process with :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.set_user_data`. .. versionadded:: 2.8 .. method:: insert(item: ~gi.repository.WebKit.ContextMenuItem, position: int) -> None Inserts ``item`` into the ``menu`` at the given position. If ``position`` is negative, or is larger than the number of items in the :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu`\, the item is added on to the end of the ``menu``\. The first position is 0. :param item: the :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenuItem` to add :param position: the position to insert the item .. method:: last() -> ~gi.repository.WebKit.ContextMenuItem Gets the last item in the ``menu``\. .. method:: move_item(item: ~gi.repository.WebKit.ContextMenuItem, position: int) -> None Moves ``item`` to the given position in the ``menu``\. If ``position`` is negative, or is larger than the number of items in the :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenu`\, the item is added on to the end of the ``menu``\. The first position is 0. :param item: the :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenuItem` to add :param position: the new position to move the item .. method:: prepend(item: ~gi.repository.WebKit.ContextMenuItem) -> None Adds ``item`` at the beginning of the ``menu``\. :param item: the :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenuItem` to add .. method:: remove(item: ~gi.repository.WebKit.ContextMenuItem) -> None Removes ``item`` from the ``menu``\. See also :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.remove_all` to remove all items. :param item: the :obj:`~gi.repository.WebKitWebProcessExtension.ContextMenuItem` to remove .. method:: remove_all() -> None Removes all items of the ``menu``\. .. method:: set_user_data(user_data: ~gi.repository.GLib.Variant) -> None Sets user data to ``menu``\. This function can be used from a Web Process extension to set user data that can be retrieved from the UI Process using :func:`~gi.repository.WebKitWebProcessExtension.ContextMenu.get_user_data`. If the ``user_data`` :obj:`~gi.repository.GLib.Variant` is floating, it is consumed. .. versionadded:: 2.8 :param user_data: a :obj:`~gi.repository.GLib.Variant`