Blender V5.0
interface_context_menu.cc File Reference
#include <cstring>
#include "MEM_guardedalloc.h"
#include "DNA_screen_types.h"
#include "BLI_fileops.h"
#include "BLI_path_utils.hh"
#include "BLI_string_utf8.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "BKE_context.hh"
#include "BKE_idprop.hh"
#include "BKE_screen.hh"
#include "ED_asset.hh"
#include "ED_buttons.hh"
#include "ED_keyframing.hh"
#include "ED_screen.hh"
#include "UI_abstract_view.hh"
#include "UI_interface_layout.hh"
#include "interface_intern.hh"
#include "RNA_access.hh"
#include "RNA_path.hh"
#include "RNA_prototypes.hh"
#include "WM_api.hh"
#include "WM_types.hh"

Go to the source code of this file.

Macros

#define USE_KEYMAP_ADD_HACK

Functions

Panel Context Menu
void ui_popup_context_menu_for_panel (bContext *C, ARegion *region, Panel *panel)

Button Context Menu

static int g_kmi_id_hack
static IDPropertyshortcut_property_from_rna (bContext *C, uiBut *but)
static const char * shortcut_get_operator_property (bContext *C, uiBut *but, IDProperty **r_prop)
static void shortcut_free_operator_property (IDProperty *prop)
static void but_shortcut_name_func (bContext *C, void *arg1, int)
static uiBlockmenu_change_shortcut (bContext *C, ARegion *region, void *arg)
static uiBlockmenu_add_shortcut (bContext *C, ARegion *region, void *arg)
static void menu_add_shortcut_cancel (bContext *C, void *arg1)
static void remove_shortcut_func (bContext *C, uiBut *but)
static bool ui_but_is_user_menu_compatible (bContext *C, uiBut *but)
static bUserMenuItemui_but_user_menu_find (bContext *C, uiBut *but, bUserMenu *um)
static void ui_but_user_menu_add (bContext *C, uiBut *but, bUserMenu *um)
static bool ui_but_menu_add_path_operators (uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop)
static void set_layout_context_from_button (bContext *C, uiLayout *layout, uiBut *but)
bool ui_popup_context_menu_for_button (bContext *C, uiBut *but, const wmEvent *event)

Detailed Description

Generic context popup menus.

Definition in file interface_context_menu.cc.

Macro Definition Documentation

◆ USE_KEYMAP_ADD_HACK

#define USE_KEYMAP_ADD_HACK

Definition at line 52 of file interface_context_menu.cc.

Function Documentation

◆ but_shortcut_name_func()

◆ menu_add_shortcut()

◆ menu_add_shortcut_cancel()

◆ menu_change_shortcut()

◆ remove_shortcut_func()

◆ set_layout_context_from_button()

void set_layout_context_from_button ( bContext * C,
uiLayout * layout,
uiBut * but )
static

◆ shortcut_free_operator_property()

void shortcut_free_operator_property ( IDProperty * prop)
static

◆ shortcut_get_operator_property()

◆ shortcut_property_from_rna()

◆ ui_but_is_user_menu_compatible()

◆ ui_but_menu_add_path_operators()

◆ ui_but_user_menu_add()

◆ ui_but_user_menu_find()

◆ ui_popup_context_menu_for_button()

bool ui_popup_context_menu_for_button ( bContext * C,
uiBut * but,
const wmEvent * event )

Definition at line 521 of file interface_context_menu.cc.

References ANIM_driver_can_paste(), uiBut::apply_func, ID::asset_data, BLI_assert, BLI_exists(), BLI_path_split_dir_part(), uiBut::block, uiLayout::block(), BLT_I18NCONTEXT_OPERATOR_DEFAULT, blender::ui::AbstractViewItem::build_context_menu(), But, C, blender::ed::asset::can_mark_single_from_context(), uiLayout::column(), uiBut::context, uiLayout::context_set_from_but(), CTX_data_main(), CTX_data_pointer_get_type(), CTX_IFACE_, CTX_store_get(), CTX_store_set(), CTX_wm_area(), CTX_wm_region(), CTX_wm_region_popup(), PointerRNA::data, ED_buttons_navbar_menu(), ED_buttons_visible_tabs_menu(), ED_screen_user_menu_ensure(), ED_screen_user_menu_item_remove(), ED_screen_user_menus_find(), ED_screens_footer_tools_menu_create(), ED_screens_header_tools_menu_create(), ELEM, uiLayout::enabled_set(), EVT_TYPE_MASK_ALL, blender::wm::ExecDefault, FILE_MAX, FILE_MAXDIR, uiBut::flag, IFACE_, Image, blender::wm::InvokeDefault, is_disabled, ISKEYBOARD, ISNDOF_BUTTON, bUserMenu::items, Label, MEM_freeN(), uiButTab::menu, uiLayout::menu(), menu_add_shortcut(), menu_add_shortcut_cancel(), menu_change_shortcut(), uiBut::menu_create_func, uiLayout::menu_fn(), nullptr, uiLayout::op(), uiBut::opcontext, uiLayout::operator_context_set(), uiBut::opptr, uiBut::optype, ot, MenuType::poll, PROP_BOOLEAN, PROP_DIRPATH, PROP_ENUM, PROP_FILEPATH, PROP_FLOAT, PROP_INT, PROP_POINTER, PROP_STRING, ptr, ARegion::regiontype, remove_shortcut_func(), RGN_TYPE_FOOTER, RGN_TYPE_HEADER, RGN_TYPE_NAV_BAR, RGN_TYPE_TOOL_HEADER, RNA_boolean_set(), RNA_OVERRIDE_STATUS_OVERRIDABLE, RNA_property_anim_editable(), RNA_property_array_length(), RNA_property_is_idprop(), RNA_property_override_library_status(), RNA_property_path_from_ID_check(), RNA_property_string_get(), RNA_property_subtype(), RNA_property_type(), RNA_string_set(), RNA_struct_find_property(), RNA_struct_property_is_set(), uiBut::rnaindex, uiBut::rnapoin, uiBut::rnaprop, SearchMenu, uiLayout::separator(), set_layout_context_from_button(), shortcut_free_operator_property(), shortcut_get_operator_property(), SPACE_PROPERTIES, ScrArea::spacetype, Tab, TIP_, PointerRNA::type, uiBut::type, wmKeyMapItem::type, U, ui_block_is_menu(), ui_block_is_popup_any(), UI_BUT_ANIMATED, UI_BUT_ANIMATED_KEY, UI_but_context_menu_title_from_button(), UI_BUT_DISABLED, UI_BUT_DRIVEN, UI_but_flag_enable(), UI_but_func_set(), ui_but_is_user_menu_compatible(), ui_but_menu_add_path_operators(), UI_but_online_manual_id(), UI_BUT_OVERRIDDEN, ui_but_user_menu_add(), ui_but_user_menu_find(), UI_ITEM_NONE, ui_jump_to_target_button_poll(), ui_list_find_mouse_over(), ui_list_row_find_mouse_over(), UI_menutype_draw(), UI_popup_block_ex(), UI_popup_block_invoke(), UI_popup_menu_begin(), UI_popup_menu_end_or_cancel(), UI_popup_menu_layout(), ui_rna_collection_search_update_fn(), UI_UNIT_Y, ui_view_item_find_mouse_over(), uiDefBlockBut(), uiDefIconTextBut(), USER_DEVELOPER_UI, uiButViewItem::view_item, ViewItem, w(), uiLayout::width(), WM_key_event_operator(), WM_keymap_guess_opname(), WM_menutype_find(), WM_operatortype_find(), and wmEvent::xy.

Referenced by ui_do_button(), ui_screen_region_find_mouse_over_ex(), and ui_search_menu_create_context_menu().

◆ ui_popup_context_menu_for_panel()

Variable Documentation

◆ g_kmi_id_hack

int g_kmi_id_hack
static

Definition at line 214 of file interface_context_menu.cc.

Referenced by menu_add_shortcut(), and menu_add_shortcut_cancel().