Blender V4.3
interface_context_menu.cc File Reference
#include <cstring>
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "BLI_fileops.h"
#include "BLI_path_utils.hh"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "BKE_addon.h"
#include "BKE_context.hh"
#include "BKE_idprop.hh"
#include "BKE_screen.hh"
#include "ED_asset.hh"
#include "ED_keyframing.hh"
#include "ED_screen.hh"
#include "UI_abstract_view.hh"
#include "UI_interface.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 53 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()

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

◆ shortcut_free_operator_property()

static void shortcut_free_operator_property ( IDProperty * prop)
static

◆ shortcut_get_operator_property()

◆ shortcut_property_from_rna()

static IDProperty * shortcut_property_from_rna ( bContext * C,
uiBut * but )
static

◆ 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 528 of file interface_context_menu.cc.

References ANIM_driver_can_paste(), uiBut::apply_func, BLI_assert, BLI_exists(), BLI_path_split_dir_part(), uiBut::block, BLT_I18NCONTEXT_OPERATOR_DEFAULT, blender::ui::AbstractViewItem::build_context_menu(), uiBut::context, CTX_data_main(), CTX_data_pointer_get_type(), CTX_IFACE_, CTX_store_get(), CTX_store_set(), CTX_wm_region(), CTX_wm_region_popup(), PointerRNA::data, 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(), ED_screens_region_flip_menu_create(), ELEM, EVT_TYPE_MASK_ALL, FILE_MAX, FILE_MAXDIR, uiBut::flag, wmOperatorType::flag, IFACE_, is_disabled, ISKEYBOARD, ISNDOF_BUTTON, bUserMenu::items, MEM_freeN(), uiButTab::menu, menu_add_shortcut(), menu_add_shortcut_cancel(), menu_change_shortcut(), uiBut::menu_create_func, uiBut::opcontext, uiBut::opptr, uiBut::optype, ot, PointerRNA::owner_id, MenuType::poll, PROP_BOOLEAN, PROP_DIRPATH, PROP_ENUM, PROP_FILEPATH, PROP_FLOAT, PROP_INT, PROP_POINTER, PROP_STRING, ptr, 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, set_layout_context_from_button(), shortcut_free_operator_property(), shortcut_get_operator_property(), TIP_, PointerRNA::type, uiBut::type, wmKeyMapItem::type, ui_block_is_menu(), ui_block_is_popup_any(), UI_BTYPE_BUT, UI_BTYPE_IMAGE, UI_BTYPE_LABEL, UI_BTYPE_SEARCH_MENU, UI_BTYPE_TAB, UI_BTYPE_VIEW_ITEM, 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(), uiItemBooleanO(), uiItemFullO(), uiItemFullO_ptr(), uiItemM_ptr(), uiItemMenuF(), uiItemO(), uiItemS(), uiLayoutColumn(), uiLayoutGetBlock(), uiLayoutGetWidth(), uiLayoutSetContextFromBut(), uiLayoutSetEnabled(), uiLayoutSetOperatorContext(), USER_DEVELOPER_UI, uiButViewItem::view_item, w(), WM_key_event_operator(), WM_keymap_guess_opname(), WM_menutype_find(), WM_OP_EXEC_DEFAULT, WM_OP_INVOKE_DEFAULT, WM_operatortype_find(), and wmEvent::xy.

Referenced by ui_do_button(), 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 215 of file interface_context_menu.cc.

Referenced by menu_add_shortcut(), and menu_add_shortcut_cancel().