Blender  V3.3
Macros
interface_context_menu.c File Reference
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "BLI_path_util.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "BKE_addon.h"
#include "BKE_context.h"
#include "BKE_idprop.h"
#include "BKE_screen.h"
#include "ED_asset.h"
#include "ED_keyframing.h"
#include "ED_screen.h"
#include "UI_interface.h"
#include "interface_intern.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "WM_api.h"
#include "WM_types.h"

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 UNUSED(event))
 
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 (struct bContext *C, void *arg1)
 
static void popup_change_shortcut_func (bContext *C, void *arg1, void *UNUSED(arg2))
 
static void remove_shortcut_func (bContext *C, void *arg1, void *UNUSED(arg2))
 
static void popup_add_shortcut_func (bContext *C, void *arg1, void *UNUSED(arg2))
 
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 void popup_user_menu_add_or_replace_func (bContext *C, void *arg1, void *UNUSED(arg2))
 
static void popup_user_menu_remove_func (bContext *UNUSED(C), void *arg1, void *arg2)
 
static void ui_but_menu_add_path_operators (uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop)
 
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.c.

Macro Definition Documentation

◆ USE_KEYMAP_ADD_HACK

#define USE_KEYMAP_ADD_HACK

Definition at line 48 of file interface_context_menu.c.

Function Documentation

◆ but_shortcut_name_func()

static void but_shortcut_name_func ( bContext C,
void arg1,
int   UNUSEDevent 
)
static

◆ menu_add_shortcut()

static uiBlock* menu_add_shortcut ( bContext C,
ARegion region,
void arg 
)
static

◆ menu_add_shortcut_cancel()

static void menu_add_shortcut_cancel ( struct bContext C,
void arg1 
)
static

◆ menu_change_shortcut()

static uiBlock* menu_change_shortcut ( bContext C,
ARegion region,
void arg 
)
static

◆ popup_add_shortcut_func()

static void popup_add_shortcut_func ( bContext C,
void arg1,
void UNUSEDarg2 
)
static

◆ popup_change_shortcut_func()

static void popup_change_shortcut_func ( bContext C,
void arg1,
void UNUSEDarg2 
)
static

◆ popup_user_menu_add_or_replace_func()

static void popup_user_menu_add_or_replace_func ( bContext C,
void arg1,
void UNUSEDarg2 
)
static

◆ popup_user_menu_remove_func()

static void popup_user_menu_remove_func ( bContext UNUSEDC,
void arg1,
void arg2 
)
static

◆ remove_shortcut_func()

static void remove_shortcut_func ( bContext C,
void arg1,
void UNUSEDarg2 
)
static

◆ shortcut_free_operator_property()

static void shortcut_free_operator_property ( IDProperty prop)
static

◆ shortcut_get_operator_property()

static const char* shortcut_get_operator_property ( bContext C,
uiBut but,
IDProperty **  r_prop 
)
static

◆ shortcut_property_from_rna()

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

◆ ui_but_is_user_menu_compatible()

static bool ui_but_is_user_menu_compatible ( bContext C,
uiBut but 
)
static

◆ ui_but_menu_add_path_operators()

static void ui_but_menu_add_path_operators ( uiLayout layout,
PointerRNA ptr,
PropertyRNA prop 
)
static

◆ ui_but_user_menu_add()

static void ui_but_user_menu_add ( bContext C,
uiBut but,
bUserMenu um 
)
static

◆ ui_but_user_menu_find()

static bUserMenuItem* ui_but_user_menu_find ( bContext C,
uiBut but,
bUserMenu um 
)
static

◆ ui_popup_context_menu_for_button()

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

Definition at line 483 of file interface_context_menu.c.

References ANIM_driver_can_paste(), ID::asset_data, BKE_addon_find(), BLI_assert, uiBut::block, BLT_I18NCONTEXT_OPERATOR_DEFAULT, uiButViewItem::but, BUT_GET_LABEL, C, uiBut::context, CTX_data_main(), CTX_data_pointer_get_type(), CTX_IFACE_, CTX_store_get(), CTX_store_set(), CTX_wm_menu(), CTX_wm_region(), PointerRNA::data, ED_asset_can_mark_single_from_context(), ED_screen_user_menus_find(), ED_screens_footer_tools_menu_create(), ED_screens_header_tools_menu_create(), ED_screens_navigation_bar_tools_menu_create(), ELEM, EVT_TYPE_MASK_ALL, uiBut::flag, wmOperatorType::flag, id, IFACE_, is_disabled, ISKEYBOARD, ISNDOF_BUTTON, label, MEM_freeN, uiButTab::menu, menu_change_shortcut(), NULL, uiBut::opcontext, uiBut::optype, ot, PointerRNA::owner_id, MenuType::poll, popup_add_shortcut_func(), popup_change_shortcut_func(), popup_user_menu_add_or_replace_func(), popup_user_menu_remove_func(), 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_animateable(), RNA_property_array_length(), RNA_property_is_idprop(), RNA_property_override_library_status(), RNA_property_path_from_ID_check(), RNA_property_subtype(), RNA_property_type(), RNA_string_set(), uiBut::rnaindex, uiBut::rnapoin, uiBut::rnaprop, shortcut_free_operator_property(), shortcut_get_operator_property(), TIP_, uiBut::type, type, wmKeyMapItem::type, PointerRNA::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_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_string_info_get(), ui_but_user_menu_find(), ui_jump_to_target_button_poll(), ui_list_find_mouse_over(), ui_list_row_find_mouse_over(), UI_menutype_draw(), 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_context_menu_build(), ui_view_item_find_mouse_over(), uiDefBlockBut(), uiDefIconTextBut(), uiItemBooleanO(), uiItemFullO(), uiItemFullO_ptr(), uiItemM_ptr(), uiItemMenuF(), uiItemO(), uiItemS(), uiLayoutColumn(), uiLayoutContextCopy(), uiLayoutGetBlock(), uiLayoutGetContextStore(), 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()

void ui_popup_context_menu_for_panel ( struct bContext C,
struct ARegion region,
struct Panel panel 
)

Variable Documentation

◆ g_kmi_id_hack

int g_kmi_id_hack
static

Definition at line 208 of file interface_context_menu.c.

Referenced by menu_add_shortcut(), and menu_add_shortcut_cancel().