:github_url: hide .. Generated automatically by doc/tools/make_rst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the PopupMenu.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_PopupMenu: PopupMenu ========= **Inherits:** :ref:`Popup` **<** :ref:`Window` **<** :ref:`Viewport` **<** :ref:`Node` **<** :ref:`Object` PopupMenu displays a list of options. Description ----------- ``PopupMenu`` is a modal window used to display a list of options. They are popular in toolbars or context menus. The size of a ``PopupMenu`` can be limited by using :ref:`Window.max_size`. If the height of the list of items is larger than the maximum height of the ``PopupMenu``, a :ref:`ScrollContainer` within the popup will allow the user to scroll the contents. If no maximum size is set, or if it is set to 0, the ``PopupMenu`` height will be limited by its parent rect. Properties ---------- +---------------------------+----------------------------------------------------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`allow_search` | ``true`` | +---------------------------+----------------------------------------------------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`hide_on_checkable_item_selection` | ``true`` | +---------------------------+----------------------------------------------------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`hide_on_item_selection` | ``true`` | +---------------------------+----------------------------------------------------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`hide_on_state_item_selection` | ``false`` | +---------------------------+----------------------------------------------------------------------------------------------------+-----------+ | :ref:`int` | :ref:`item_count` | ``0`` | +---------------------------+----------------------------------------------------------------------------------------------------+-----------+ | :ref:`float` | :ref:`submenu_popup_delay` | ``0.3`` | +---------------------------+----------------------------------------------------------------------------------------------------+-----------+ Methods ------- +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_check_item` **(** :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_check_shortcut` **(** :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_icon_check_item` **(** :ref:`Texture2D` texture, :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_icon_check_shortcut` **(** :ref:`Texture2D` texture, :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_icon_item` **(** :ref:`Texture2D` texture, :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_icon_radio_check_item` **(** :ref:`Texture2D` texture, :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_icon_radio_check_shortcut` **(** :ref:`Texture2D` texture, :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_icon_shortcut` **(** :ref:`Texture2D` texture, :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_item` **(** :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_multistate_item` **(** :ref:`String` label, :ref:`int` max_states, :ref:`int` default_state=0, :ref:`int` id=-1, :ref:`Key` accel=0 **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_radio_check_item` **(** :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_radio_check_shortcut` **(** :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_separator` **(** :ref:`String` label="", :ref:`int` id=-1 **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_shortcut` **(** :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_submenu_item` **(** :ref:`String` label, :ref:`String` submenu, :ref:`int` id=-1 **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`clear` **(** **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`clear_item_opentype_features` **(** :ref:`int` index **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_current_index` **(** **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Key` | :ref:`get_item_accelerator` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Texture2D` | :ref:`get_item_icon` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_item_id` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_item_index` **(** :ref:`int` id **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_item_language` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_item_metadata` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_item_opentype_feature` **(** :ref:`int` index, :ref:`String` tag **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Shortcut` | :ref:`get_item_shortcut` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_item_submenu` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_item_text` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`TextDirection` | :ref:`get_item_text_direction` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_item_tooltip` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_item_checkable` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_item_checked` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_item_disabled` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_item_radio_checkable` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_item_separator` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_item_shortcut_disabled` **(** :ref:`int` index **)** |const| | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_item` **(** :ref:`int` index **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`scroll_to_item` **(** :ref:`int` index **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_current_index` **(** :ref:`int` index **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_accelerator` **(** :ref:`int` index, :ref:`Key` accel **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_as_checkable` **(** :ref:`int` index, :ref:`bool` enable **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_as_radio_checkable` **(** :ref:`int` index, :ref:`bool` enable **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_as_separator` **(** :ref:`int` index, :ref:`bool` enable **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_checked` **(** :ref:`int` index, :ref:`bool` checked **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_disabled` **(** :ref:`int` index, :ref:`bool` disabled **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_icon` **(** :ref:`int` index, :ref:`Texture2D` icon **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_id` **(** :ref:`int` index, :ref:`int` id **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_language` **(** :ref:`int` index, :ref:`String` language **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_metadata` **(** :ref:`int` index, :ref:`Variant` metadata **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_multistate` **(** :ref:`int` index, :ref:`int` state **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_opentype_feature` **(** :ref:`int` index, :ref:`String` tag, :ref:`int` value **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_shortcut` **(** :ref:`int` index, :ref:`Shortcut` shortcut, :ref:`bool` global=false **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_shortcut_disabled` **(** :ref:`int` index, :ref:`bool` disabled **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_submenu` **(** :ref:`int` index, :ref:`String` submenu **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_text` **(** :ref:`int` index, :ref:`String` text **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_text_direction` **(** :ref:`int` index, :ref:`TextDirection` direction **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_item_tooltip` **(** :ref:`int` index, :ref:`String` tooltip **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`toggle_item_checked` **(** :ref:`int` index **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`toggle_item_multistate` **(** :ref:`int` index **)** | +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Theme Properties ---------------- +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Color` | :ref:`font_accelerator_color` | ``Color(0.7, 0.7, 0.7, 0.8)`` | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Color` | :ref:`font_color` | ``Color(0.875, 0.875, 0.875, 1)`` | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Color` | :ref:`font_disabled_color` | ``Color(0.4, 0.4, 0.4, 0.8)`` | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Color` | :ref:`font_hover_color` | ``Color(0.875, 0.875, 0.875, 1)`` | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Color` | :ref:`font_outline_color` | ``Color(1, 1, 1, 1)`` | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Color` | :ref:`font_separator_color` | ``Color(0.875, 0.875, 0.875, 1)`` | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`int` | :ref:`hseparation` | ``4`` | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`int` | :ref:`item_end_padding` | ``2`` | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`int` | :ref:`item_start_padding` | ``2`` | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`int` | :ref:`outline_size` | ``0`` | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`int` | :ref:`vseparation` | ``4`` | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Font` | :ref:`font` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`int` | :ref:`font_size` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Texture2D` | :ref:`checked` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Texture2D` | :ref:`radio_checked` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Texture2D` | :ref:`radio_unchecked` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Texture2D` | :ref:`submenu` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Texture2D` | :ref:`submenu_mirrored` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Texture2D` | :ref:`unchecked` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`StyleBox` | :ref:`hover` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`StyleBox` | :ref:`labeled_separator_left` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`StyleBox` | :ref:`labeled_separator_right` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`StyleBox` | :ref:`panel` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`StyleBox` | :ref:`panel_disabled` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`StyleBox` | :ref:`separator` | | +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+ Signals ------- .. _class_PopupMenu_signal_id_focused: - **id_focused** **(** :ref:`int` id **)** Emitted when user navigated to an item of some ``id`` using ``ui_up`` or ``ui_down`` action. ---- .. _class_PopupMenu_signal_id_pressed: - **id_pressed** **(** :ref:`int` id **)** Emitted when an item of some ``id`` is pressed or its accelerator is activated. ---- .. _class_PopupMenu_signal_index_pressed: - **index_pressed** **(** :ref:`int` index **)** Emitted when an item of some ``index`` is pressed or its accelerator is activated. Property Descriptions --------------------- .. _class_PopupMenu_property_allow_search: - :ref:`bool` **allow_search** +-----------+-------------------------+ | *Default* | ``true`` | +-----------+-------------------------+ | *Setter* | set_allow_search(value) | +-----------+-------------------------+ | *Getter* | get_allow_search() | +-----------+-------------------------+ If ``true``, allows navigating ``PopupMenu`` with letter keys. ---- .. _class_PopupMenu_property_hide_on_checkable_item_selection: - :ref:`bool` **hide_on_checkable_item_selection** +-----------+---------------------------------------------+ | *Default* | ``true`` | +-----------+---------------------------------------------+ | *Setter* | set_hide_on_checkable_item_selection(value) | +-----------+---------------------------------------------+ | *Getter* | is_hide_on_checkable_item_selection() | +-----------+---------------------------------------------+ If ``true``, hides the ``PopupMenu`` when a checkbox or radio button is selected. ---- .. _class_PopupMenu_property_hide_on_item_selection: - :ref:`bool` **hide_on_item_selection** +-----------+-----------------------------------+ | *Default* | ``true`` | +-----------+-----------------------------------+ | *Setter* | set_hide_on_item_selection(value) | +-----------+-----------------------------------+ | *Getter* | is_hide_on_item_selection() | +-----------+-----------------------------------+ If ``true``, hides the ``PopupMenu`` when an item is selected. ---- .. _class_PopupMenu_property_hide_on_state_item_selection: - :ref:`bool` **hide_on_state_item_selection** +-----------+-----------------------------------------+ | *Default* | ``false`` | +-----------+-----------------------------------------+ | *Setter* | set_hide_on_state_item_selection(value) | +-----------+-----------------------------------------+ | *Getter* | is_hide_on_state_item_selection() | +-----------+-----------------------------------------+ If ``true``, hides the ``PopupMenu`` when a state item is selected. ---- .. _class_PopupMenu_property_item_count: - :ref:`int` **item_count** +-----------+-----------------------+ | *Default* | ``0`` | +-----------+-----------------------+ | *Setter* | set_item_count(value) | +-----------+-----------------------+ | *Getter* | get_item_count() | +-----------+-----------------------+ The number of items currently in the list. ---- .. _class_PopupMenu_property_submenu_popup_delay: - :ref:`float` **submenu_popup_delay** +-----------+--------------------------------+ | *Default* | ``0.3`` | +-----------+--------------------------------+ | *Setter* | set_submenu_popup_delay(value) | +-----------+--------------------------------+ | *Getter* | get_submenu_popup_delay() | +-----------+--------------------------------+ Sets the delay time in seconds for the submenu item to popup on mouse hovering. If the popup menu is added as a child of another (acting as a submenu), it will inherit the delay time of the parent menu item. Method Descriptions ------------------- .. _class_PopupMenu_method_add_check_item: - void **add_check_item** **(** :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** Adds a new checkable item with text ``label``. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator` for more info on accelerators. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked` for more info on how to control it. ---- .. _class_PopupMenu_method_add_check_shortcut: - void **add_check_shortcut** **(** :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** Adds a new checkable item and assigns the specified :ref:`Shortcut` to it. Sets the label of the checkbox to the :ref:`Shortcut`'s name. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked` for more info on how to control it. ---- .. _class_PopupMenu_method_add_icon_check_item: - void **add_icon_check_item** **(** :ref:`Texture2D` texture, :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** Adds a new checkable item with text ``label`` and icon ``texture``. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator` for more info on accelerators. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked` for more info on how to control it. ---- .. _class_PopupMenu_method_add_icon_check_shortcut: - void **add_icon_check_shortcut** **(** :ref:`Texture2D` texture, :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** Adds a new checkable item and assigns the specified :ref:`Shortcut` and icon ``texture`` to it. Sets the label of the checkbox to the :ref:`Shortcut`'s name. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked` for more info on how to control it. ---- .. _class_PopupMenu_method_add_icon_item: - void **add_icon_item** **(** :ref:`Texture2D` texture, :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** Adds a new item with text ``label`` and icon ``texture``. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator` for more info on accelerators. ---- .. _class_PopupMenu_method_add_icon_radio_check_item: - void **add_icon_radio_check_item** **(** :ref:`Texture2D` texture, :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** Same as :ref:`add_icon_check_item`, but uses a radio check button. ---- .. _class_PopupMenu_method_add_icon_radio_check_shortcut: - void **add_icon_radio_check_shortcut** **(** :ref:`Texture2D` texture, :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** Same as :ref:`add_icon_check_shortcut`, but uses a radio check button. ---- .. _class_PopupMenu_method_add_icon_shortcut: - void **add_icon_shortcut** **(** :ref:`Texture2D` texture, :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** Adds a new item and assigns the specified :ref:`Shortcut` and icon ``texture`` to it. Sets the label of the checkbox to the :ref:`Shortcut`'s name. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index. ---- .. _class_PopupMenu_method_add_item: - void **add_item** **(** :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** Adds a new item with text ``label``. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator` for more info on accelerators. \ **Note:** The provided ``id`` is used only in :ref:`id_pressed` and :ref:`id_focused` signals. It's not related to the ``index`` arguments in e.g. :ref:`set_item_checked`. ---- .. _class_PopupMenu_method_add_multistate_item: - void **add_multistate_item** **(** :ref:`String` label, :ref:`int` max_states, :ref:`int` default_state=0, :ref:`int` id=-1, :ref:`Key` accel=0 **)** Adds a new multistate item with text ``label``. Contrarily to normal binary items, multistate items can have more than two states, as defined by ``max_states``. Each press or activate of the item will increase the state by one. The default value is defined by ``default_state``. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator` for more info on accelerators. ---- .. _class_PopupMenu_method_add_radio_check_item: - void **add_radio_check_item** **(** :ref:`String` label, :ref:`int` id=-1, :ref:`Key` accel=0 **)** Adds a new radio check button with text ``label``. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator` for more info on accelerators. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked` for more info on how to control it. ---- .. _class_PopupMenu_method_add_radio_check_shortcut: - void **add_radio_check_shortcut** **(** :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** Adds a new radio check button and assigns a :ref:`Shortcut` to it. Sets the label of the checkbox to the :ref:`Shortcut`'s name. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked` for more info on how to control it. ---- .. _class_PopupMenu_method_add_separator: - void **add_separator** **(** :ref:`String` label="", :ref:`int` id=-1 **)** Adds a separator between items. Separators also occupy an index, which you can set by using the ``id`` parameter. A ``label`` can optionally be provided, which will appear at the center of the separator. ---- .. _class_PopupMenu_method_add_shortcut: - void **add_shortcut** **(** :ref:`Shortcut` shortcut, :ref:`int` id=-1, :ref:`bool` global=false **)** Adds a :ref:`Shortcut`. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index. ---- .. _class_PopupMenu_method_add_submenu_item: - void **add_submenu_item** **(** :ref:`String` label, :ref:`String` submenu, :ref:`int` id=-1 **)** Adds an item that will act as a submenu of the parent ``PopupMenu`` node when clicked. The ``submenu`` argument is the name of the child ``PopupMenu`` node that will be shown when the item is clicked. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index. ---- .. _class_PopupMenu_method_clear: - void **clear** **(** **)** Removes all items from the ``PopupMenu``. ---- .. _class_PopupMenu_method_clear_item_opentype_features: - void **clear_item_opentype_features** **(** :ref:`int` index **)** Removes all OpenType features form the item's text. ---- .. _class_PopupMenu_method_get_current_index: - :ref:`int` **get_current_index** **(** **)** |const| Returns the index of the currently focused item. Returns ``-1`` if no item is focused. ---- .. _class_PopupMenu_method_get_item_accelerator: - :ref:`Key` **get_item_accelerator** **(** :ref:`int` index **)** |const| Returns the accelerator of the item at the given ``index``. Accelerators are special combinations of keys that activate the item, no matter which control is focused. ---- .. _class_PopupMenu_method_get_item_icon: - :ref:`Texture2D` **get_item_icon** **(** :ref:`int` index **)** |const| Returns the icon of the item at the given ``index``. ---- .. _class_PopupMenu_method_get_item_id: - :ref:`int` **get_item_id** **(** :ref:`int` index **)** |const| Returns the id of the item at the given ``index``. ``id`` can be manually assigned, while index can not. ---- .. _class_PopupMenu_method_get_item_index: - :ref:`int` **get_item_index** **(** :ref:`int` id **)** |const| Returns the index of the item containing the specified ``id``. Index is automatically assigned to each item by the engine and can not be set manually. ---- .. _class_PopupMenu_method_get_item_language: - :ref:`String` **get_item_language** **(** :ref:`int` index **)** |const| Returns item's text language code. ---- .. _class_PopupMenu_method_get_item_metadata: - :ref:`Variant` **get_item_metadata** **(** :ref:`int` index **)** |const| Returns the metadata of the specified item, which might be of any type. You can set it with :ref:`set_item_metadata`, which provides a simple way of assigning context data to items. ---- .. _class_PopupMenu_method_get_item_opentype_feature: - :ref:`int` **get_item_opentype_feature** **(** :ref:`int` index, :ref:`String` tag **)** |const| Returns OpenType feature ``tag`` of the item's text. ---- .. _class_PopupMenu_method_get_item_shortcut: - :ref:`Shortcut` **get_item_shortcut** **(** :ref:`int` index **)** |const| Returns the :ref:`Shortcut` associated with the item at the given ``index``. ---- .. _class_PopupMenu_method_get_item_submenu: - :ref:`String` **get_item_submenu** **(** :ref:`int` index **)** |const| Returns the submenu name of the item at the given ``index``. See :ref:`add_submenu_item` for more info on how to add a submenu. ---- .. _class_PopupMenu_method_get_item_text: - :ref:`String` **get_item_text** **(** :ref:`int` index **)** |const| Returns the text of the item at the given ``index``. ---- .. _class_PopupMenu_method_get_item_text_direction: - :ref:`TextDirection` **get_item_text_direction** **(** :ref:`int` index **)** |const| Returns item's text base writing direction. ---- .. _class_PopupMenu_method_get_item_tooltip: - :ref:`String` **get_item_tooltip** **(** :ref:`int` index **)** |const| Returns the tooltip associated with the item at the given ``index``. ---- .. _class_PopupMenu_method_is_item_checkable: - :ref:`bool` **is_item_checkable** **(** :ref:`int` index **)** |const| Returns ``true`` if the item at the given ``index`` is checkable in some way, i.e. if it has a checkbox or radio button. \ **Note:** Checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually. ---- .. _class_PopupMenu_method_is_item_checked: - :ref:`bool` **is_item_checked** **(** :ref:`int` index **)** |const| Returns ``true`` if the item at the given ``index`` is checked. ---- .. _class_PopupMenu_method_is_item_disabled: - :ref:`bool` **is_item_disabled** **(** :ref:`int` index **)** |const| Returns ``true`` if the item at the given ``index`` is disabled. When it is disabled it can't be selected, or its action invoked. See :ref:`set_item_disabled` for more info on how to disable an item. ---- .. _class_PopupMenu_method_is_item_radio_checkable: - :ref:`bool` **is_item_radio_checkable** **(** :ref:`int` index **)** |const| Returns ``true`` if the item at the given ``index`` has radio button-style checkability. \ **Note:** This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. ---- .. _class_PopupMenu_method_is_item_separator: - :ref:`bool` **is_item_separator** **(** :ref:`int` index **)** |const| Returns ``true`` if the item is a separator. If it is, it will be displayed as a line. See :ref:`add_separator` for more info on how to add a separator. ---- .. _class_PopupMenu_method_is_item_shortcut_disabled: - :ref:`bool` **is_item_shortcut_disabled** **(** :ref:`int` index **)** |const| Returns ``true`` if the specified item's shortcut is disabled. ---- .. _class_PopupMenu_method_remove_item: - void **remove_item** **(** :ref:`int` index **)** Removes the item at the given ``index`` from the menu. \ **Note:** The indices of items after the removed item will be shifted by one. ---- .. _class_PopupMenu_method_scroll_to_item: - void **scroll_to_item** **(** :ref:`int` index **)** Moves the scroll view to make the item at the given ``index`` visible. ---- .. _class_PopupMenu_method_set_current_index: - void **set_current_index** **(** :ref:`int` index **)** Sets the currently focused item as the given ``index``. ---- .. _class_PopupMenu_method_set_item_accelerator: - void **set_item_accelerator** **(** :ref:`int` index, :ref:`Key` accel **)** Sets the accelerator of the item at the given ``index``. Accelerators are special combinations of keys that activate the item, no matter which control is focused. ---- .. _class_PopupMenu_method_set_item_as_checkable: - void **set_item_as_checkable** **(** :ref:`int` index, :ref:`bool` enable **)** Sets whether the item at the given ``index`` has a checkbox. If ``false``, sets the type of the item to plain text. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. ---- .. _class_PopupMenu_method_set_item_as_radio_checkable: - void **set_item_as_radio_checkable** **(** :ref:`int` index, :ref:`bool` enable **)** Sets the type of the item at the given ``index`` to radio button. If ``false``, sets the type of the item to plain text. ---- .. _class_PopupMenu_method_set_item_as_separator: - void **set_item_as_separator** **(** :ref:`int` index, :ref:`bool` enable **)** Mark the item at the given ``index`` as a separator, which means that it would be displayed as a line. If ``false``, sets the type of the item to plain text. ---- .. _class_PopupMenu_method_set_item_checked: - void **set_item_checked** **(** :ref:`int` index, :ref:`bool` checked **)** Sets the checkstate status of the item at the given ``index``. ---- .. _class_PopupMenu_method_set_item_disabled: - void **set_item_disabled** **(** :ref:`int` index, :ref:`bool` disabled **)** Enables/disables the item at the given ``index``. When it is disabled, it can't be selected and its action can't be invoked. ---- .. _class_PopupMenu_method_set_item_icon: - void **set_item_icon** **(** :ref:`int` index, :ref:`Texture2D` icon **)** Replaces the :ref:`Texture2D` icon of the item at the given ``index``. ---- .. _class_PopupMenu_method_set_item_id: - void **set_item_id** **(** :ref:`int` index, :ref:`int` id **)** Sets the ``id`` of the item at the given ``index``. The ``id`` is used in :ref:`id_pressed` and :ref:`id_focused` signals. ---- .. _class_PopupMenu_method_set_item_language: - void **set_item_language** **(** :ref:`int` index, :ref:`String` language **)** Sets language code of item's text used for line-breaking and text shaping algorithms, if left empty current locale is used instead. ---- .. _class_PopupMenu_method_set_item_metadata: - void **set_item_metadata** **(** :ref:`int` index, :ref:`Variant` metadata **)** Sets the metadata of an item, which may be of any type. You can later get it with :ref:`get_item_metadata`, which provides a simple way of assigning context data to items. ---- .. _class_PopupMenu_method_set_item_multistate: - void **set_item_multistate** **(** :ref:`int` index, :ref:`int` state **)** Sets the state of a multistate item. See :ref:`add_multistate_item` for details. ---- .. _class_PopupMenu_method_set_item_opentype_feature: - void **set_item_opentype_feature** **(** :ref:`int` index, :ref:`String` tag, :ref:`int` value **)** Sets OpenType feature ``tag`` for the item's text. More info: `OpenType feature tags `__. ---- .. _class_PopupMenu_method_set_item_shortcut: - void **set_item_shortcut** **(** :ref:`int` index, :ref:`Shortcut` shortcut, :ref:`bool` global=false **)** Sets a :ref:`Shortcut` for the item at the given ``index``. ---- .. _class_PopupMenu_method_set_item_shortcut_disabled: - void **set_item_shortcut_disabled** **(** :ref:`int` index, :ref:`bool` disabled **)** Disables the :ref:`Shortcut` of the item at the given ``index``. ---- .. _class_PopupMenu_method_set_item_submenu: - void **set_item_submenu** **(** :ref:`int` index, :ref:`String` submenu **)** Sets the submenu of the item at the given ``index``. The submenu is the name of a child ``PopupMenu`` node that would be shown when the item is clicked. ---- .. _class_PopupMenu_method_set_item_text: - void **set_item_text** **(** :ref:`int` index, :ref:`String` text **)** Sets the text of the item at the given ``index``. ---- .. _class_PopupMenu_method_set_item_text_direction: - void **set_item_text_direction** **(** :ref:`int` index, :ref:`TextDirection` direction **)** Sets item's text base writing direction. ---- .. _class_PopupMenu_method_set_item_tooltip: - void **set_item_tooltip** **(** :ref:`int` index, :ref:`String` tooltip **)** Sets the :ref:`String` tooltip of the item at the given ``index``. ---- .. _class_PopupMenu_method_toggle_item_checked: - void **toggle_item_checked** **(** :ref:`int` index **)** Toggles the check state of the item at the given ``index``. ---- .. _class_PopupMenu_method_toggle_item_multistate: - void **toggle_item_multistate** **(** :ref:`int` index **)** Cycle to the next state of a multistate item. See :ref:`add_multistate_item` for details. Theme Property Descriptions --------------------------- .. _class_PopupMenu_theme_color_font_accelerator_color: - :ref:`Color` **font_accelerator_color** +-----------+-------------------------------+ | *Default* | ``Color(0.7, 0.7, 0.7, 0.8)`` | +-----------+-------------------------------+ The text :ref:`Color` used for shortcuts and accelerators that show next to the menu item name when defined. See :ref:`get_item_accelerator` for more info on accelerators. ---- .. _class_PopupMenu_theme_color_font_color: - :ref:`Color` **font_color** +-----------+-----------------------------------+ | *Default* | ``Color(0.875, 0.875, 0.875, 1)`` | +-----------+-----------------------------------+ The default text :ref:`Color` for menu items' names. ---- .. _class_PopupMenu_theme_color_font_disabled_color: - :ref:`Color` **font_disabled_color** +-----------+-------------------------------+ | *Default* | ``Color(0.4, 0.4, 0.4, 0.8)`` | +-----------+-------------------------------+ :ref:`Color` used for disabled menu items' text. ---- .. _class_PopupMenu_theme_color_font_hover_color: - :ref:`Color` **font_hover_color** +-----------+-----------------------------------+ | *Default* | ``Color(0.875, 0.875, 0.875, 1)`` | +-----------+-----------------------------------+ :ref:`Color` used for the hovered text. ---- .. _class_PopupMenu_theme_color_font_outline_color: - :ref:`Color` **font_outline_color** +-----------+-----------------------+ | *Default* | ``Color(1, 1, 1, 1)`` | +-----------+-----------------------+ The tint of text outline of the menu item. ---- .. _class_PopupMenu_theme_color_font_separator_color: - :ref:`Color` **font_separator_color** +-----------+-----------------------------------+ | *Default* | ``Color(0.875, 0.875, 0.875, 1)`` | +-----------+-----------------------------------+ :ref:`Color` used for labeled separators' text. See :ref:`add_separator`. ---- .. _class_PopupMenu_theme_constant_hseparation: - :ref:`int` **hseparation** +-----------+-------+ | *Default* | ``4`` | +-----------+-------+ The horizontal space between the item's name and the shortcut text/submenu arrow. ---- .. _class_PopupMenu_theme_constant_item_end_padding: - :ref:`int` **item_end_padding** +-----------+-------+ | *Default* | ``2`` | +-----------+-------+ ---- .. _class_PopupMenu_theme_constant_item_start_padding: - :ref:`int` **item_start_padding** +-----------+-------+ | *Default* | ``2`` | +-----------+-------+ ---- .. _class_PopupMenu_theme_constant_outline_size: - :ref:`int` **outline_size** +-----------+-------+ | *Default* | ``0`` | +-----------+-------+ The size of the item text outline. ---- .. _class_PopupMenu_theme_constant_vseparation: - :ref:`int` **vseparation** +-----------+-------+ | *Default* | ``4`` | +-----------+-------+ The vertical space between each menu item. ---- .. _class_PopupMenu_theme_font_font: - :ref:`Font` **font** :ref:`Font` used for the menu items. ---- .. _class_PopupMenu_theme_font_size_font_size: - :ref:`int` **font_size** Font size of the menu items. ---- .. _class_PopupMenu_theme_icon_checked: - :ref:`Texture2D` **checked** :ref:`Texture2D` icon for the checked checkbox items. ---- .. _class_PopupMenu_theme_icon_radio_checked: - :ref:`Texture2D` **radio_checked** :ref:`Texture2D` icon for the checked radio button items. ---- .. _class_PopupMenu_theme_icon_radio_unchecked: - :ref:`Texture2D` **radio_unchecked** :ref:`Texture2D` icon for the unchecked radio button items. ---- .. _class_PopupMenu_theme_icon_submenu: - :ref:`Texture2D` **submenu** :ref:`Texture2D` icon for the submenu arrow (for left-to-right layouts). ---- .. _class_PopupMenu_theme_icon_submenu_mirrored: - :ref:`Texture2D` **submenu_mirrored** :ref:`Texture2D` icon for the submenu arrow (for right-to-left layouts). ---- .. _class_PopupMenu_theme_icon_unchecked: - :ref:`Texture2D` **unchecked** :ref:`Texture2D` icon for the unchecked checkbox items. ---- .. _class_PopupMenu_theme_style_hover: - :ref:`StyleBox` **hover** :ref:`StyleBox` displayed when the ``PopupMenu`` item is hovered. ---- .. _class_PopupMenu_theme_style_labeled_separator_left: - :ref:`StyleBox` **labeled_separator_left** :ref:`StyleBox` for the left side of labeled separator. See :ref:`add_separator`. ---- .. _class_PopupMenu_theme_style_labeled_separator_right: - :ref:`StyleBox` **labeled_separator_right** :ref:`StyleBox` for the right side of labeled separator. See :ref:`add_separator`. ---- .. _class_PopupMenu_theme_style_panel: - :ref:`StyleBox` **panel** Default :ref:`StyleBox` of the ``PopupMenu`` items. ---- .. _class_PopupMenu_theme_style_panel_disabled: - :ref:`StyleBox` **panel_disabled** :ref:`StyleBox` used when the ``PopupMenu`` item is disabled. ---- .. _class_PopupMenu_theme_style_separator: - :ref:`StyleBox` **separator** :ref:`StyleBox` used for the separators. See :ref:`add_separator`. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`