68 {0,
nullptr, 0,
nullptr,
nullptr},
72 {
TIMER,
"TIMER", 0,
"Timer",
""},
73 {
TIMER0,
"TIMER0", 0,
"Timer 0",
""},
74 {
TIMER1,
"TIMER1", 0,
"Timer 1",
""},
75 {
TIMER2,
"TIMER2", 0,
"Timer 2",
""},
76 {
TIMERJOBS,
"TIMER_JOBS", 0,
"Timer Jobs",
""},
78 {
TIMERREPORT,
"TIMER_REPORT", 0,
"Timer Report",
""},
79 {
TIMERREGION,
"TIMERREGION", 0,
"Timer Region",
""},
80 {0,
nullptr, 0,
nullptr,
nullptr},
85 {0,
nullptr, 0,
nullptr,
nullptr},
113 "NDOF_BUTTON_ROLL_CW",
118 "NDOF_BUTTON_ROLL_CCW",
123 "NDOF_BUTTON_SPIN_CW",
128 "NDOF_BUTTON_SPIN_CCW",
133 "NDOF_BUTTON_TILT_CW",
138 "NDOF_BUTTON_TILT_CCW",
145 "NDOF_BUTTON_PANZOOM",
150 "NDOF_BUTTON_DOMINANT",
184 {0,
nullptr, 0,
nullptr,
nullptr},
203 {0,
nullptr, 0,
nullptr,
nullptr},
210 {0,
"NONE", 0,
"",
""},
211 {
LEFTMOUSE,
"LEFTMOUSE", 0,
"Left Mouse",
"LMB"},
212 {
MIDDLEMOUSE,
"MIDDLEMOUSE", 0,
"Middle Mouse",
"MMB"},
213 {
RIGHTMOUSE,
"RIGHTMOUSE", 0,
"Right Mouse",
"RMB"},
214 {
BUTTON4MOUSE,
"BUTTON4MOUSE", 0,
"Button4 Mouse",
"MB4"},
215 {
BUTTON5MOUSE,
"BUTTON5MOUSE", 0,
"Button5 Mouse",
"MB5"},
216 {
BUTTON6MOUSE,
"BUTTON6MOUSE", 0,
"Button6 Mouse",
"MB6"},
217 {
BUTTON7MOUSE,
"BUTTON7MOUSE", 0,
"Button7 Mouse",
"MB7"},
222 {
MOUSEMOVE,
"MOUSEMOVE", 0,
"Mouse Move",
"MsMov"},
224 {
MOUSEPAN,
"TRACKPADPAN", 0,
"Mouse/Trackpad Pan",
"MsPan"},
225 {
MOUSEZOOM,
"TRACKPADZOOM", 0,
"Mouse/Trackpad Zoom",
"MsZoom"},
226 {
MOUSEROTATE,
"MOUSEROTATE", 0,
"Mouse/Trackpad Rotate",
"MsRot"},
227 {
MOUSESMARTZOOM,
"MOUSESMARTZOOM", 0,
"Mouse/Trackpad Smart Zoom",
"MsSmartZoom"},
279 {
EVT_OSKEY,
"OSKEY", 0,
"OS Key",
"Cmd"},
305 {
EVT_PAD2,
"NUMPAD_2", 0,
"Numpad 2",
"Pad2"},
306 {
EVT_PAD4,
"NUMPAD_4", 0,
"Numpad 4",
"Pad4"},
307 {
EVT_PAD6,
"NUMPAD_6", 0,
"Numpad 6",
"Pad6"},
308 {
EVT_PAD8,
"NUMPAD_8", 0,
"Numpad 8",
"Pad8"},
309 {
EVT_PAD1,
"NUMPAD_1", 0,
"Numpad 1",
"Pad1"},
310 {
EVT_PAD3,
"NUMPAD_3", 0,
"Numpad 3",
"Pad3"},
311 {
EVT_PAD5,
"NUMPAD_5", 0,
"Numpad 5",
"Pad5"},
312 {
EVT_PAD7,
"NUMPAD_7", 0,
"Numpad 7",
"Pad7"},
313 {
EVT_PAD9,
"NUMPAD_9", 0,
"Numpad 9",
"Pad9"},
317 {
EVT_PAD0,
"NUMPAD_0", 0,
"Numpad 0",
"Pad0"},
319 {
EVT_PADENTER,
"NUMPAD_ENTER", 0,
"Numpad Enter",
"PadEnter"},
371 {
WINDEACTIVATE,
"WINDOW_DEACTIVATE", 0,
"Window Deactivate",
""},
372 {
TIMER,
"TIMER", 0,
"Timer",
"Tmr"},
373 {
TIMER0,
"TIMER0", 0,
"Timer 0",
"Tmr0"},
374 {
TIMER1,
"TIMER1", 0,
"Timer 1",
"Tmr1"},
375 {
TIMER2,
"TIMER2", 0,
"Timer 2",
"Tmr2"},
376 {
TIMERJOBS,
"TIMER_JOBS", 0,
"Timer Jobs",
"TmrJob"},
377 {
TIMERAUTOSAVE,
"TIMER_AUTOSAVE", 0,
"Timer Autosave",
"TmrSave"},
378 {
TIMERREPORT,
"TIMER_REPORT", 0,
"Timer Report",
"TmrReport"},
379 {
TIMERREGION,
"TIMERREGION", 0,
"Timer Region",
"TmrReg"},
381 {
NDOF_MOTION,
"NDOF_MOTION", 0,
"NDOF Motion",
"NdofMov"},
388 "NDOF_BUTTON_BOTTOM",
418 {NDOF_BUTTON_ESC,
"NDOF_BUTTON_ESC", 0,
"NDOF Esc",
"NdofEsc"},
419 {NDOF_BUTTON_ALT,
"NDOF_BUTTON_ALT", 0,
"NDOF Alt",
"NdofAlt"},
420 {NDOF_BUTTON_SHIFT,
"NDOF_BUTTON_SHIFT", 0,
"NDOF Shift",
"NdofShift"},
421 {NDOF_BUTTON_CTRL,
"NDOF_BUTTON_CTRL", 0,
"NDOF Ctrl",
"NdofCtrl"},
424 {
NDOF_BUTTON_V1,
"NDOF_BUTTON_V1", 0,
"NDOF View 1",
"NdofView1"},
425 {
NDOF_BUTTON_V2,
"NDOF_BUTTON_V2", 0,
"NDOF View 2",
"NdofView2"},
426 {
NDOF_BUTTON_V3,
"NDOF_BUTTON_V3", 0,
"NDOF View 3",
"NdofView3"},
431 {
NDOF_BUTTON_1,
"NDOF_BUTTON_1", 0,
"NDOF Button 1",
"NdofB1"},
432 {
NDOF_BUTTON_2,
"NDOF_BUTTON_2", 0,
"NDOF Button 2",
"NdofB2"},
433 {
NDOF_BUTTON_3,
"NDOF_BUTTON_3", 0,
"NDOF Button 3",
"NdofB3"},
434 {
NDOF_BUTTON_4,
"NDOF_BUTTON_4", 0,
"NDOF Button 4",
"NdofB4"},
435 {
NDOF_BUTTON_5,
"NDOF_BUTTON_5", 0,
"NDOF Button 5",
"NdofB5"},
436 {
NDOF_BUTTON_6,
"NDOF_BUTTON_6", 0,
"NDOF Button 6",
"NdofB6"},
437 {
NDOF_BUTTON_7,
"NDOF_BUTTON_7", 0,
"NDOF Button 7",
"NdofB7"},
438 {
NDOF_BUTTON_8,
"NDOF_BUTTON_8", 0,
"NDOF Button 8",
"NdofB8"},
439 {
NDOF_BUTTON_9,
"NDOF_BUTTON_9", 0,
"NDOF Button 9",
"NdofB9"},
440 {
NDOF_BUTTON_10,
"NDOF_BUTTON_10", 0,
"NDOF Button 10",
"NdofB10"},
441 {
NDOF_BUTTON_11,
"NDOF_BUTTON_11", 0,
"NDOF Button 11",
"NdofB11"},
442 {
NDOF_BUTTON_12,
"NDOF_BUTTON_12", 0,
"NDOF Button 12",
"NdofB12"},
448 "ACTIONZONE_FULLSCREEN",
450 "ActionZone Fullscreen",
454 {0,
nullptr, 0,
nullptr,
nullptr},
466 {
KM_ANY,
"ANY", 0,
"Any",
""},
467 {
KM_PRESS,
"PRESS", 0,
"Press",
""},
469 {
KM_CLICK,
"CLICK", 0,
"Click",
""},
474 {0,
nullptr, 0,
nullptr,
nullptr},
478 {
KM_ANY,
"ANY", 0,
"Any",
""},
487 {0,
nullptr, 0,
nullptr,
nullptr},
491 {0,
"NONE", 0,
"",
""},
492 {0,
nullptr, 0,
nullptr,
nullptr},
505 {0,
nullptr, 0,
nullptr,
nullptr},
510 {
KM_ANY,
"ANY", 0,
"Any",
""},
511 {0,
"NONE", 0,
"None",
""},
513 {0,
nullptr, 0,
nullptr,
nullptr},
522 "Display in the info window and support the redo toolbar panel"},
527 "Push an undo event when the operator returns `FINISHED` (needed for operator redo, "
528 "mandatory if the operator modifies Blender data)"},
533 "Push a single undo event for repeated instances of this operator"},
534 {
OPTYPE_BLOCKING,
"BLOCKING", 0,
"Blocking",
"Block anything else from using the cursor"},
535 {
OPTYPE_MACRO,
"MACRO", 0,
"Macro",
"Use to check if an operator is a macro"},
540 "Use so the operator grabs the mouse focus, enables wrapping when continuous grab "
548 "The initial cursor location is used, "
549 "when running from a menus or buttons the user is prompted to place the cursor "
550 "before beginning the operation"},
551 {
OPTYPE_PRESET,
"PRESET", 0,
"Preset",
"Display a preset button with the operators settings"},
552 {
OPTYPE_INTERNAL,
"INTERNAL", 0,
"Internal",
"Removes the operator from search results"},
557 "Handle events before other modal operators without this option. Use with caution, do not "
558 "modify data that other modal operators assume is unchanged during their operation."},
559 {0,
nullptr, 0,
nullptr,
nullptr},
567 "Keep the operator running with blender"},
572 "The operator exited without doing anything, so no undo entry should be pushed"},
577 "The operator exited after completing its action"},
580 {
OPERATOR_INTERFACE,
"INTERFACE", 0,
"Interface",
"Handled but not executed (popup menus)"},
581 {0,
nullptr, 0,
nullptr,
nullptr},
589 "The property is advanced so UI is suggested to hide it"},
590 {0,
nullptr, 0,
nullptr,
nullptr},
604 {0,
nullptr, 0,
nullptr,
nullptr},
639 if (op->properties == properties) {
664static void rna_Operator_name_get(
PointerRNA *
ptr,
char *value)
679 return (op->reports && op->reports->list.first);
701 result.data = op->properties;
713 result.data = otmacro->properties;
730static void rna_Event_unicode_get(
PointerRNA *
ptr,
char *value)
735 if (event->utf8_buf[0]) {
738 memcpy(value, event->utf8_buf,
len);
748 if (event->utf8_buf[0]) {
784static void rna_Event_tilt_get(
PointerRNA *
ptr,
float *values)
792# ifdef WITH_XR_OPENXR
794 wmXrActionData *actiondata =
static_cast<wmXrActionData *
>(
795 WM_event_is_xr(event) ?
event->customdata :
nullptr);
834 if (value.data ==
nullptr) {
884 if (value.data ==
nullptr) {
925 if (value.data ==
nullptr) {
938 return !screen->temp;
1027static void rna_wmKeyMapItem_map_type_set(
PointerRNA *
ptr,
int value)
1030 int map_type = rna_wmKeyMapItem_map_type_get(
ptr);
1032 if (value != map_type) {
1062static void rna_wmKeyMapItem_keymodifier_set(
PointerRNA *
ptr,
int value)
1085 int map_type = rna_wmKeyMapItem_map_type_get(
ptr);
1088 return event_mouse_type_items;
1091 return event_timer_type_items;
1094 return event_ndof_type_items;
1097 return event_textinput_type_items;
1142static void rna_KeyMapItem_any_set(
PointerRNA *
ptr,
bool value)
1157 return kmi->
shift != 0;
1163 return kmi->
ctrl != 0;
1169 return kmi->
alt != 0;
1175 return kmi->
oskey != 0;
1193static void rna_WindowManager_active_keyconfig_set(
PointerRNA *
ptr,
1205static void rna_WindowManager_extensions_statusbar_update(
Main * ,
1241static bool rna_wmKeyConfigPref_unregister(
Main * ,
StructRNA *type)
1264 const char *identifier,
1269 const char *error_prefix =
"Registering key-config preferences class:";
1278 if (validate(&dummy_kpt_ptr, data,
nullptr ) != 0) {
1283 if (strlen(identifier) >=
sizeof(dummy_kpt_rt.idname)) {
1286 "%s '%s' is too long, maximum length is %d",
1289 int(
sizeof(dummy_kpt_rt.idname)));
1298 "%s '%s', bl_idname '%s' has been registered before, unregistering previous",
1304 if (!(srna && rna_wmKeyConfigPref_unregister(bmain, srna))) {
1307 "%s '%s', bl_idname '%s' %s",
1311 srna ?
"is built-in" :
"could not be unregistered");
1319 memcpy(kpt_rt, &dummy_kpt_rt,
sizeof(dummy_kpt_rt));
1324 kpt_rt->rna_ext.data =
data;
1325 kpt_rt->rna_ext.call = call;
1326 kpt_rt->rna_ext.free =
free;
1334 return kpt_rt->rna_ext.srna;
1345static void rna_wmKeyMapItem_idname_get(
PointerRNA *
ptr,
char *value)
1351 memcpy(value, value_buf,
len + 1);
1361static void rna_wmKeyMapItem_idname_set(
PointerRNA *
ptr,
const char *value)
1375static void rna_wmKeyMapItem_name_get(
PointerRNA *
ptr,
char *value)
1399# ifdef WITH_XR_OPENXR
1421 func = &rna_Operator_poll_func;
1428 visible = *(
bool *)
ret;
1446 func = &rna_Operator_execute_func;
1450 const bool has_error = op->
type->
rna_ext.
call(C, &opr, func, &list) == -1;
1453 result = *(
int *)
ret;
1477 func = &rna_Operator_check_func;
1484 result = (*(
bool *)
ret) != 0;
1502 func = &rna_Operator_invoke_func;
1507 const bool has_error = op->
type->
rna_ext.
call(C, &opr, func, &list) == -1;
1510 result = *(
int *)
ret;
1534 func = &rna_Operator_modal_func;
1542 result = *(
int *)
ret;
1560 func = &rna_Operator_draw_func;
1579 func = &rna_Operator_cancel_func;
1588static std::string rna_operator_description_cb(
bContext *C,
1599 func = &rna_Operator_description_func;
1607 std::string result =
ret ? std::string(
static_cast<const char *
>(
ret)) :
"";
1614static bool rna_Operator_unregister(
Main *bmain,
StructRNA *type);
1624 const char *identifier,
1629 const char *error_prefix =
"Registering operator class:";
1632 bool have_function[8];
1643 dummy_operator.
type = &dummy_ot;
1644 dummy_ot.
idname = temp_buffers.idname;
1645 dummy_ot.
name = temp_buffers.name;
1647 temp_buffers.description;
1649 temp_buffers.translation_context;
1650 dummy_ot.
undo_group = temp_buffers.undo_group;
1654 temp_buffers.idname[0] = temp_buffers.name[0] = temp_buffers.description[0] =
1655 temp_buffers.undo_group[0] = temp_buffers.translation_context[0] =
'\0';
1658 if (validate(&dummy_operator_ptr, data, have_function) != 0) {
1668 "%s '%s', bl_idname '%s' has been registered before, unregistering previous",
1674 if (!(srna && rna_Operator_unregister(bmain, srna))) {
1677 "%s '%s', bl_idname '%s' %s",
1681 srna ?
"is built-in" :
"could not be unregistered");
1691 char idname_conv[
sizeof(dummy_operator.
idname)];
1699 if (temp_buffers.translation_context[0] ==
'\0') {
1706 const char *strings[] = {
1709 temp_buffers.description,
1710 temp_buffers.translation_context,
1711 temp_buffers.undo_group,
1715 '\0', strings_table, strings,
ARRAY_SIZE(strings));
1717 dummy_ot.
idname = strings_table[0];
1718 dummy_ot.
name = strings_table[1];
1719 dummy_ot.
description = *strings_table[2] ? strings_table[2] :
nullptr;
1740 dummy_ot.
pyop_poll = (have_function[0]) ? rna_operator_poll_cb : nullptr;
1741 dummy_ot.
exec = (have_function[1]) ? rna_operator_exec_cb : nullptr;
1742 dummy_ot.
check = (have_function[2]) ? rna_operator_check_cb : nullptr;
1743 dummy_ot.
invoke = (have_function[3]) ? rna_operator_invoke_cb : nullptr;
1744 dummy_ot.
modal = (have_function[4]) ? rna_operator_modal_cb : nullptr;
1745 dummy_ot.
ui = (have_function[5]) ? rna_operator_draw_cb : nullptr;
1746 dummy_ot.
cancel = (have_function[6]) ? rna_operator_cancel_cb : nullptr;
1747 dummy_ot.
get_description = (have_function[7]) ? rna_operator_description_cb : nullptr;
1756static bool rna_Operator_unregister(
Main *bmain,
StructRNA *type)
1797 const char *identifier,
1802 const char *error_prefix =
"Registering operator macro class:";
1805 bool have_function[2];
1816 dummy_operator.
type = &dummy_ot;
1817 dummy_ot.
idname = temp_buffers.idname;
1818 dummy_ot.
name = temp_buffers.name;
1820 temp_buffers.description;
1822 temp_buffers.translation_context;
1823 dummy_ot.
undo_group = temp_buffers.undo_group;
1827 temp_buffers.idname[0] = temp_buffers.name[0] = temp_buffers.description[0] =
1828 temp_buffers.undo_group[0] = temp_buffers.translation_context[0] =
'\0';
1831 if (validate(&dummy_operator_ptr, data, have_function) != 0) {
1845 "%s '%s', bl_idname '%s' has been registered before, unregistering previous",
1851 if (!(srna && rna_Operator_unregister(bmain, srna))) {
1854 "%s '%s', bl_idname '%s' %s",
1858 srna ?
"is built-in" :
"could not be unregistered");
1864 char idname_conv[
sizeof(dummy_operator.
idname)];
1872 if (temp_buffers.translation_context[0] ==
'\0') {
1879 const char *strings[] = {
1882 temp_buffers.description,
1883 temp_buffers.translation_context,
1884 temp_buffers.undo_group,
1888 '\0', strings_table, strings,
ARRAY_SIZE(strings));
1890 dummy_ot.
idname = strings_table[0];
1891 dummy_ot.
name = strings_table[1];
1892 dummy_ot.
description = *strings_table[2] ? strings_table[2] :
nullptr;
1908 dummy_ot.
pyop_poll = (have_function[0]) ? rna_operator_poll_cb : nullptr;
1909 dummy_ot.
ui = (have_function[1]) ? rna_operator_draw_cb : nullptr;
1933static void rna_Operator_bl_idname_set(
PointerRNA *
ptr,
const char *value)
1944 BLI_assert_msg(0,
"setting the bl_idname on a non-builtin operator");
1948static void rna_Operator_bl_label_set(
PointerRNA *
ptr,
const char *value)
1956 BLI_assert_msg(0,
"setting the bl_label on a non-builtin operator");
1965# define OPERATOR_STR_MAYBE_NULL_GETSET(attr, attr_maxncpy) \
1966 static void rna_Operator_bl_##attr##_set(PointerRNA *ptr, const char *value) \
1968 wmOperator *data = (wmOperator *)(ptr->data); \
1969 char *str = (char *)data->type->attr; \
1970 if (str && !str[0]) { \
1971 BLI_strncpy_utf8(str, value, attr_maxncpy); \
1974 BLI_assert_msg(false, "setting the bl_" #attr " on a non-builtin operator"); \
1977 static void rna_Operator_bl_##attr##_get(PointerRNA *ptr, char *value) \
1979 const wmOperator *data = (wmOperator *)(ptr->data); \
1980 const char *str = data->type->attr; \
1981 strcpy(value, str ? str : ""); \
1983 static int rna_Operator_bl_##attr##_length(PointerRNA *ptr) \
1985 const wmOperator *data = (wmOperator *)(ptr->data); \
1986 const char *str = data->type->attr; \
1987 return str ? strlen(str) : 0; \
1990OPERATOR_STR_MAYBE_NULL_GETSET(translation_context,
BKE_ST_MAXNAME)
2023 prop,
"Invoke",
"True when invoked (even if only the execute callbacks available)");
2039 prop,
"Focus Region",
"Enable to use the region under the cursor for modal execution");
2049 prop,
"rna_Operator_name_get",
"rna_Operator_name_length",
nullptr);
2064 "Operator has a set of reports (warnings and errors) from last execution");
2088 "rna_Operator_bl_translation_context_get",
2089 "rna_Operator_bl_translation_context_length",
2090 "rna_Operator_bl_translation_context_set");
2098 "rna_Operator_bl_description_get",
2099 "rna_Operator_bl_description_length",
2100 "rna_Operator_bl_description_set");
2108 "rna_Operator_bl_undo_group_get",
2109 "rna_Operator_bl_undo_group_length",
2110 "rna_Operator_bl_undo_group_set");
2127 "Cursor to use when waiting for the user to select a location to activate the operator "
2128 "(when ``bl_options`` has ``DEPENDS_ON_CURSOR`` set)");
2138 srna,
"Operator",
"Storage of an operator being executed, or registered after execution");
2143 srna,
"rna_Operator_register",
"rna_Operator_unregister",
"rna_Operator_instance");
2183 "Storage of a macro operator being executed, or registered after execution");
2188 srna,
"rna_MacroOperator_register",
"rna_Operator_unregister",
"rna_Operator_instance");
2205 srna,
"Operator Macro",
"Storage of a sub operator in a macro after it has been added");
2221 prop,
"rna_OperatorMacro_properties_get",
nullptr,
nullptr,
nullptr);
2229 srna =
RNA_def_struct(brna,
"OperatorMousePath",
"PropertyGroup");
2231 srna,
"Operator Mouse Path",
"Mouse path values for operators that record such paths");
2248 srna =
RNA_def_struct(brna,
"OperatorFileListElement",
"PropertyGroup");
2276 prop,
"rna_Event_unicode_get",
"rna_Event_unicode_length",
nullptr);
2324 "Part of a trackpad or NDOF motion, "
2325 "interrupted by cursor motion, button or key press events");
2332 prop,
"Mouse X Position",
"The window relative horizontal location of the mouse");
2338 prop,
"Mouse Y Position",
"The window relative vertical location of the mouse");
2344 prop,
"Mouse X Position",
"The region relative horizontal location of the mouse");
2350 prop,
"Mouse Y Position",
"The region relative vertical location of the mouse");
2356 prop,
"Mouse Previous X Position",
"The window relative horizontal location of the mouse");
2362 prop,
"Mouse Previous Y Position",
"The window relative vertical location of the mouse");
2368 "Mouse Previous X Press Position",
2369 "The window relative horizontal location of the last press event");
2375 "Mouse Previous Y Press Position",
2376 "The window relative vertical location of the last press event");
2383 prop,
"Tablet Pressure",
"The pressure of the tablet or 1.0 if no tablet present");
2390 prop,
"Tablet Tilt",
"The pressure of the tablet or zeroes if no tablet present");
2465 const char *rna_type,
2467 const char *layout_get_fn)
2558 prop,
"rna_Window_workspace_get",
"rna_Window_workspace_set",
nullptr,
nullptr);
2566 "rna_Window_screen_get",
2567 "rna_Window_screen_set",
2569 "rna_Window_screen_assign_poll");
2577 prop,
"rna_Window_view_layer_get",
"rna_Window_view_layer_set",
nullptr,
nullptr);
2579 prop,
"Active View Layer",
"The active workspace view layer showing in the window");
2613 "rna_Window_modal_operators_begin",
2614 "rna_iterator_listbase_next",
2615 "rna_iterator_listbase_end",
2616 "rna_Window_modal_operators_get",
2640 "rna_WindowManager_active_keyconfig_get",
2641 "rna_WindowManager_active_keyconfig_set",
2657 "Add-on Key Configuration",
2658 "Key configuration that can be extended by add-ons, and is added to the active "
2659 "configuration when handling events");
2666 "User Key Configuration",
2667 "Final key configuration that combines keymaps from the active and add-on configurations, "
2668 "and can be edited by the user");
2682 "Window manager data-block defining open windows and other user interface data");
2707 prop,
"rna_WindowManager_xr_session_state_get",
nullptr,
nullptr,
nullptr);
2710 prop,
"XR Session State",
"Runtime state information about the VR session");
2714 prop,
"Extensions Updates",
"Number of extensions with available update");
2719 prop,
"Extensions Blocked",
"Number of installed extensions which are blocked");
2761 srna,
"rna_wmKeyConfigPref_register",
"rna_wmKeyConfigPref_unregister",
nullptr);
2784 {0,
nullptr, 0,
nullptr,
nullptr},
2806 prop,
"User Defined",
"Indicates that a keyconfig was defined by the user");
2812 prop,
"rna_wmKeyConfig_preferences_get",
nullptr,
nullptr,
nullptr);
2847 prop,
"Items",
"Items in the keymap, linking an operator to an input event");
2860 "Indicates that a keymap is used for translate modal events for an operator");
2876 "rna_KeyMap_modal_event_values_items_begin",
2877 "rna_iterator_array_next",
2878 "rna_iterator_array_end",
2879 "rna_iterator_array_get",
2886 "Give access to the possible event values of this modal keymap's items "
2887 "(#KeyMapItem.propvalue), for API introspection");
2900 "rna_wmKeyMapItem_idname_get",
2901 "rna_wmKeyMapItem_idname_length",
2902 "rna_wmKeyMapItem_idname_set");
2904 "WM_operatortype_idname_visit_for_search",
2915 prop,
"rna_wmKeyMapItem_name_get",
"rna_wmKeyMapItem_name_length",
nullptr);
2927 prop,
"rna_wmKeyMapItem_map_type_get",
"rna_wmKeyMapItem_map_type_set",
nullptr);
3037 prop,
"Expanded",
"Show key map event and property details in the user interface");
3046 prop,
"Property Value",
"The value this event translates to in a modal keymap");
3066 "Is this keymap item user defined (doesn't just replace a builtin item)");
Main * CTX_data_main(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
void BKE_keyconfig_pref_type_add(struct wmKeyConfigPrefType_Runtime *kpt_rt)
void BKE_keyconfig_pref_type_remove(const struct wmKeyConfigPrefType_Runtime *kpt_rt)
struct wmKeyConfigPref * BKE_keyconfig_pref_ensure(struct UserDef *userdef, const char *kc_idname)
struct wmKeyConfigPrefType_Runtime wmKeyConfigPrefType_Runtime
struct wmKeyConfigPrefType_Runtime * BKE_keyconfig_pref_type_find(const char *idname, bool quiet)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
WorkSpaceLayout * BKE_workspace_layout_find(const WorkSpace *workspace, const bScreen *screen) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
bScreen * BKE_workspace_active_screen_get(const WorkSpaceInstanceHook *hook) GETTER_ATTRS
WorkSpace * BKE_workspace_active_get(WorkSpaceInstanceHook *hook) GETTER_ATTRS
#define BLI_assert_unreachable()
#define BLI_assert_msg(a, msg)
void BLI_kdtree_nd_ free(KDTree *tree)
void * BLI_findstring(const struct ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
#define STRNCPY(dst, src)
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
unsigned int unsigned int BLI_str_utf8_as_unicode_step_or_error(const char *__restrict p, size_t p_len, size_t *__restrict index) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
int BLI_str_utf8_size_or_error(const char *p) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define BLI_STR_UTF8_LEFTWARDS_ARROW
#define BLI_STR_UTF8_UPWARDS_ARROW
#define BLI_STR_UTF8_DOWNWARDS_ARROW
#define BLI_STR_UTF8_BLACK_RIGHT_POINTING_DOUBLE_TRIANGLE_WITH_VERTICAL_BAR
#define BLI_STR_UTF8_BLACK_SQUARE_FOR_STOP
#define BLI_STR_UTF8_RIGHTWARDS_ARROW
#define BLI_STR_UTF8_BLACK_LEFT_POINTING_DOUBLE_TRIANGLE_WITH_VERTICAL_BAR
#define BLI_STR_UTF8_BLACK_RIGHT_POINTING_TRIANGLE_WITH_DOUBLE_VERTICAL_BAR
void void char * BLI_string_join_array_by_sep_char_with_tableN(char sep, char *table[], const char *strings[], uint strings_num) ATTR_NONNULL(2
#define BLT_I18NCONTEXT_ID_WINDOWMANAGER
#define CTX_N_(context, msgid)
#define BLT_I18NCONTEXT_ID_SCREEN
#define BLT_I18NCONTEXT_OPERATOR_DEFAULT
#define BLT_I18NCONTEXT_UI_EVENTS
#define BPy_BEGIN_ALLOW_THREADS
#define BPy_END_ALLOW_THREADS
Object is a sort of wrapper for general info.
@ S3D_SIDEBYSIDE_CROSSEYED
@ STATUSBAR_SHOW_EXTENSIONS_UPDATES
@ KEYMAP_CHILDREN_EXPANDED
@ OP_IS_MODAL_CURSOR_REGION
@ OP_IS_MODAL_GRAB_CURSOR
@ RPT_ERROR_OUT_OF_MEMORY
@ RPT_ERROR_INVALID_INPUT
@ RPT_ERROR_INVALID_CONTEXT
Read Guarded memory(de)allocation.
#define RNA_DYN_DESCR_MAX
@ STRUCT_NO_CONTEXT_WITHOUT_OWNER_ID
@ STRUCT_NO_DATABLOCK_IDPROPERTIES
@ STRUCT_PUBLIC_NAMESPACE_INHERIT
@ PROP_STRING_SEARCH_SUGGESTION
@ PROP_STRING_SEARCH_SORT
int(*)(PointerRNA *ptr, void *data, bool *have_function) StructValidateFunc
#define RNA_ENUM_ITEM_SEPR
void(*)(void *data) StructFreeFunc
int(*)(bContext *C, PointerRNA *ptr, FunctionRNA *func, ParameterList *list) StructCallbackFunc
constexpr PointerRNA PointerRNA_NULL
uiLayout * UI_pie_menu_layout(uiPieMenu *pie)
uiLayout * UI_popover_layout(uiPopover *pup)
uiLayout * UI_popup_menu_layout(uiPopupMenu *pup)
@ WM_JOB_TYPE_OBJECT_BAKE
@ WM_JOB_TYPE_RENDER_PREVIEW
@ WM_JOB_TYPE_SHADER_COMPILATION
@ OPTYPE_DEPENDS_ON_CURSOR
@ WM_EVENT_IS_CONSECUTIVE
#define OP_PROP_TAG_ADVANCED
void BPY_RNA_operator_macro_wrapper(wmOperatorType *ot, void *userdata)
void BPY_RNA_operator_wrapper(wmOperatorType *ot, void *userdata)
void *(* MEM_mallocN)(size_t len, const char *str)
void MEM_freeN(void *vmemh)
bool RNA_struct_available_or_report(ReportList *reports, const char *identifier)
void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type)
uint RNA_enum_items_count(const EnumPropertyItem *item)
void * RNA_struct_blender_type_get(StructRNA *srna)
void RNA_parameter_list_free(ParameterList *parms)
void rna_iterator_listbase_begin(CollectionPropertyIterator *iter, ListBase *lb, IteratorSkipFunc skip)
void rna_iterator_array_begin(CollectionPropertyIterator *iter, void *ptr, int itemsize, int length, bool free_ptr, IteratorSkipFunc skip)
void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value)
PointerRNA rna_pointer_inherit_refine(const PointerRNA *ptr, StructRNA *type, void *data)
ParameterList * RNA_parameter_list_create(ParameterList *parms, PointerRNA *, FunctionRNA *func)
PointerRNA RNA_pointer_create(ID *id, StructRNA *type, void *data)
void * rna_iterator_listbase_get(CollectionPropertyIterator *iter)
void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **r_value)
PointerRNA RNA_id_pointer_create(ID *id)
void RNA_def_struct_name_property(StructRNA *srna, PropertyRNA *prop)
void RNA_def_struct_refine_func(StructRNA *srna, const char *refine)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_flag(StructRNA *srna, int flag)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_property_float_default(PropertyRNA *prop, float value)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_define_verify_sdna(bool verify)
void RNA_def_property_string_search_func(PropertyRNA *prop, const char *search, const eStringPropertySearchFlag search_flag)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
void RNA_def_struct_property_tags(StructRNA *srna, const EnumPropertyItem *prop_tag_defines)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg, const char *instance)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_struct_clear_flag(StructRNA *srna, int flag)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
void RNA_def_property_string_maxlength(PropertyRNA *prop, int maxlength)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
StructRNA * RNA_def_struct_ptr(BlenderRNA *brna, const char *identifier, StructRNA *srnafrom)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_struct_free_extension(StructRNA *srna, ExtensionRNA *rna_ext)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_string_default(PropertyRNA *prop, const char *value)
void RNA_struct_free(BlenderRNA *brna, StructRNA *srna)
void RNA_def_struct_idprops_func(StructRNA *srna, const char *idproperties)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_translation_context(StructRNA *srna, const char *context)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_api_keymapitem(StructRNA *srna)
void RNA_api_window(StructRNA *srna)
void RNA_api_wm(StructRNA *srna)
void RNA_api_keyconfigs(StructRNA *srna)
void RNA_api_macro(StructRNA *srna)
void RNA_api_keymap(StructRNA *srna)
void RNA_api_keymapitems(StructRNA *srna)
void RNA_api_keymaps(StructRNA *srna)
void RNA_api_operator(StructRNA *srna)
void RNA_api_keyconfig(StructRNA *srna)
const EnumPropertyItem rna_enum_stereo3d_display_items[]
const EnumPropertyItem rna_enum_stereo3d_anaglyph_type_items[]
const EnumPropertyItem rna_enum_stereo3d_interlace_type_items[]
const EnumPropertyItem rna_enum_region_type_items[]
const EnumPropertyItem rna_enum_space_type_items[]
const EnumPropertyItem rna_enum_wm_job_type_items[]
static void rna_def_wm_keymaps(BlenderRNA *brna, PropertyRNA *cprop)
void RNA_def_wm(BlenderRNA *brna)
const EnumPropertyItem rna_enum_event_direction_items[]
static void rna_def_operator_type_macro(BlenderRNA *brna)
static void rna_def_timer(BlenderRNA *brna)
static void rna_def_keyconfig_prefs(BlenderRNA *brna)
static void rna_def_operator_common(StructRNA *srna)
static void rna_def_popup_menu_wrapper(BlenderRNA *brna, const char *rna_type, const char *c_type, const char *layout_get_fn)
static void rna_def_event(BlenderRNA *brna)
const EnumPropertyItem rna_enum_event_value_items[]
static void rna_def_window_stereo3d(BlenderRNA *brna)
static void rna_def_macro_operator(BlenderRNA *brna)
const EnumPropertyItem rna_enum_event_type_mask_items[]
const EnumPropertyItem rna_enum_operator_property_tag_items[]
static void rna_def_popovermenu(BlenderRNA *brna)
static void rna_def_operator_filelist_element(BlenderRNA *brna)
static void rna_def_windowmanager(BlenderRNA *brna)
static void rna_def_wm_keyconfigs(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_operator(BlenderRNA *brna)
const EnumPropertyItem rna_enum_event_type_items[]
static void rna_def_operator_options_runtime(BlenderRNA *brna)
static void rna_def_piemenu(BlenderRNA *brna)
static void rna_def_window(BlenderRNA *brna)
const EnumPropertyItem rna_enum_wm_report_items[]
const EnumPropertyItem rna_enum_keymap_propvalue_items[]
const EnumPropertyItem rna_enum_operator_type_flag_items[]
const EnumPropertyItem rna_enum_operator_return_items[]
static void rna_def_keyconfig(BlenderRNA *brna)
static void rna_def_operator_utils(BlenderRNA *brna)
static void rna_def_popupmenu(BlenderRNA *brna)
static void rna_def_keymap_items(BlenderRNA *brna, PropertyRNA *cprop)
const EnumPropertyItem rna_enum_window_cursor_items[]
struct WorkSpaceLayout * temp_layout_store
WorkSpace * temp_workspace_store
eWM_EventHandlerType type
struct wmKeyConfig * next
struct wmKeyMapItem * next
std::string(* get_description)(bContext *C, wmOperatorType *ot, PointerRNA *ptr)
int(* modal)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
bool(* check)(bContext *C, wmOperator *op)
bool(* pyop_poll)(bContext *C, wmOperatorType *ot) ATTR_WARN_UNUSED_RESULT
int(* invoke)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
int(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
const char * translation_context
void(* ui)(bContext *C, wmOperator *op)
void(* cancel)(bContext *C, wmOperator *op)
struct wmOperatorType * type
struct wmKeyConfig * defaultconf
struct WorkSpaceInstanceHook * workspace_hook
void WM_operator_stack_clear(wmWindowManager *wm)
void WM_operator_handlers_clear(wmWindowManager *wm, wmOperatorType *ot)
float WM_event_tablet_data(const wmEvent *event, bool *r_pen_flip, float r_tilt[2])
char WM_event_utf8_to_ascii(const wmEvent *event)
bool WM_event_is_tablet(const wmEvent *event)
void WM_window_status_area_tag_redraw(wmWindow *win)
void WM_event_add_notifier_ex(wmWindowManager *wm, const wmWindow *win, uint type, void *reference)
void WM_main_add_notifier(uint type, void *reference)
void WM_event_remove_modal_handler_all(const wmOperator *op, const bool postpone)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
@ EVT_TYPE_MASK_ACTIONZONE
@ EVT_TYPE_MASK_KEYBOARD_MODIFIER
@ EVT_TYPE_MASK_MOUSE_WHEEL
@ EVT_TYPE_MASK_MOUSE_GESTURE
@ EVT_TYPE_MASK_MOUSE_BUTTON
#define ISKEYMODIFIER(event_type)
#define ISKEYBOARD(event_type)
@ EVT_ACTIONZONE_FULLSCREEN
void WM_keymap_item_properties_reset(wmKeyMapItem *kmi, IDProperty *properties)
int WM_keymap_item_map_type_get(const wmKeyMapItem *kmi)
void WM_keyconfig_set_active(wmWindowManager *wm, const char *idname)
void WM_keyconfig_update_tag(wmKeyMap *keymap, wmKeyMapItem *kmi)
void WM_operatortype_append_macro_ptr(void(*opfunc)(wmOperatorType *ot, void *userdata), void *userdata)
std::string WM_operatortype_name(wmOperatorType *ot, PointerRNA *properties)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)
void WM_operatortype_append_ptr(void(*opfunc)(wmOperatorType *, void *), void *userdata)
void WM_operatortype_remove_ptr(wmOperatorType *ot)
size_t WM_operator_py_idname(char *dst, const char *src)
size_t WM_operator_bl_idname(char *dst, const char *src)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
bool WM_operator_py_idname_ok_or_report(ReportList *reports, const char *classname, const char *idname)
void WM_window_set_active_scene(Main *bmain, bContext *C, wmWindow *win, Scene *scene)
bool WM_window_is_temp_screen(const wmWindow *win)
void WM_window_set_active_view_layer(wmWindow *win, ViewLayer *view_layer)
ViewLayer * WM_window_get_active_view_layer(const wmWindow *win)
Scene * WM_window_get_active_scene(const wmWindow *win)
wmXrSessionState * WM_xr_session_state_handle_get(const wmXrData *xr)