77 {0,
nullptr, 0,
nullptr,
nullptr},
81 {
TIMER,
"TIMER", 0,
"Timer",
""},
82 {
TIMER0,
"TIMER0", 0,
"Timer 0",
""},
83 {
TIMER1,
"TIMER1", 0,
"Timer 1",
""},
84 {
TIMER2,
"TIMER2", 0,
"Timer 2",
""},
85 {
TIMERJOBS,
"TIMER_JOBS", 0,
"Timer Jobs",
""},
87 {
TIMERREPORT,
"TIMER_REPORT", 0,
"Timer Report",
""},
88 {
TIMERREGION,
"TIMERREGION", 0,
"Timer Region",
""},
89 {0,
nullptr, 0,
nullptr,
nullptr},
94 {0,
nullptr, 0,
nullptr,
nullptr},
122 "NDOF_BUTTON_ROLL_CW",
127 "NDOF_BUTTON_ROLL_CCW",
132 "NDOF_BUTTON_SPIN_CW",
137 "NDOF_BUTTON_SPIN_CCW",
142 "NDOF_BUTTON_TILT_CW",
147 "NDOF_BUTTON_TILT_CCW",
154 "NDOF_BUTTON_PANZOOM",
159 "NDOF_BUTTON_DOMINANT",
193 {0,
nullptr, 0,
nullptr,
nullptr},
212 {0,
nullptr, 0,
nullptr,
nullptr},
219 {0,
"NONE", 0,
"",
""},
220 {
LEFTMOUSE,
"LEFTMOUSE", 0,
"Left Mouse",
"LMB"},
221 {
MIDDLEMOUSE,
"MIDDLEMOUSE", 0,
"Middle Mouse",
"MMB"},
222 {
RIGHTMOUSE,
"RIGHTMOUSE", 0,
"Right Mouse",
"RMB"},
223 {
BUTTON4MOUSE,
"BUTTON4MOUSE", 0,
"Button4 Mouse",
"MB4"},
224 {
BUTTON5MOUSE,
"BUTTON5MOUSE", 0,
"Button5 Mouse",
"MB5"},
225 {
BUTTON6MOUSE,
"BUTTON6MOUSE", 0,
"Button6 Mouse",
"MB6"},
226 {
BUTTON7MOUSE,
"BUTTON7MOUSE", 0,
"Button7 Mouse",
"MB7"},
231 {
MOUSEMOVE,
"MOUSEMOVE", 0,
"Mouse Move",
"MsMov"},
233 {
MOUSEPAN,
"TRACKPADPAN", 0,
"Mouse/Trackpad Pan",
"MsPan"},
234 {
MOUSEZOOM,
"TRACKPADZOOM", 0,
"Mouse/Trackpad Zoom",
"MsZoom"},
235 {
MOUSEROTATE,
"MOUSEROTATE", 0,
"Mouse/Trackpad Rotate",
"MsRot"},
236 {
MOUSESMARTZOOM,
"MOUSESMARTZOOM", 0,
"Mouse/Trackpad Smart Zoom",
"MsSmartZoom"},
290 {
EVT_OSKEY,
"OSKEY", 0,
"OS Key",
"Cmd"},
317 {
EVT_PAD2,
"NUMPAD_2", 0,
"Numpad 2",
"Pad2"},
318 {
EVT_PAD4,
"NUMPAD_4", 0,
"Numpad 4",
"Pad4"},
319 {
EVT_PAD6,
"NUMPAD_6", 0,
"Numpad 6",
"Pad6"},
320 {
EVT_PAD8,
"NUMPAD_8", 0,
"Numpad 8",
"Pad8"},
321 {
EVT_PAD1,
"NUMPAD_1", 0,
"Numpad 1",
"Pad1"},
322 {
EVT_PAD3,
"NUMPAD_3", 0,
"Numpad 3",
"Pad3"},
323 {
EVT_PAD5,
"NUMPAD_5", 0,
"Numpad 5",
"Pad5"},
324 {
EVT_PAD7,
"NUMPAD_7", 0,
"Numpad 7",
"Pad7"},
325 {
EVT_PAD9,
"NUMPAD_9", 0,
"Numpad 9",
"Pad9"},
329 {
EVT_PAD0,
"NUMPAD_0", 0,
"Numpad 0",
"Pad0"},
331 {
EVT_PADENTER,
"NUMPAD_ENTER", 0,
"Numpad Enter",
"PadEnter"},
383 {
WINDEACTIVATE,
"WINDOW_DEACTIVATE", 0,
"Window Deactivate",
""},
384 {
TIMER,
"TIMER", 0,
"Timer",
"Tmr"},
385 {
TIMER0,
"TIMER0", 0,
"Timer 0",
"Tmr0"},
386 {
TIMER1,
"TIMER1", 0,
"Timer 1",
"Tmr1"},
387 {
TIMER2,
"TIMER2", 0,
"Timer 2",
"Tmr2"},
388 {
TIMERJOBS,
"TIMER_JOBS", 0,
"Timer Jobs",
"TmrJob"},
389 {
TIMERAUTOSAVE,
"TIMER_AUTOSAVE", 0,
"Timer Autosave",
"TmrSave"},
390 {
TIMERREPORT,
"TIMER_REPORT", 0,
"Timer Report",
"TmrReport"},
391 {
TIMERREGION,
"TIMERREGION", 0,
"Timer Region",
"TmrReg"},
393 {
NDOF_MOTION,
"NDOF_MOTION", 0,
"NDOF Motion",
"NdofMov"},
400 "NDOF_BUTTON_BOTTOM",
430 {NDOF_BUTTON_ESC,
"NDOF_BUTTON_ESC", 0,
"NDOF Esc",
"NdofEsc"},
431 {NDOF_BUTTON_ALT,
"NDOF_BUTTON_ALT", 0,
"NDOF Alt",
"NdofAlt"},
432 {NDOF_BUTTON_SHIFT,
"NDOF_BUTTON_SHIFT", 0,
"NDOF Shift",
"NdofShift"},
433 {NDOF_BUTTON_CTRL,
"NDOF_BUTTON_CTRL", 0,
"NDOF Ctrl",
"NdofCtrl"},
436 {
NDOF_BUTTON_V1,
"NDOF_BUTTON_V1", 0,
"NDOF View 1",
"NdofView1"},
437 {
NDOF_BUTTON_V2,
"NDOF_BUTTON_V2", 0,
"NDOF View 2",
"NdofView2"},
438 {
NDOF_BUTTON_V3,
"NDOF_BUTTON_V3", 0,
"NDOF View 3",
"NdofView3"},
443 {
NDOF_BUTTON_1,
"NDOF_BUTTON_1", 0,
"NDOF Button 1",
"NdofB1"},
444 {
NDOF_BUTTON_2,
"NDOF_BUTTON_2", 0,
"NDOF Button 2",
"NdofB2"},
445 {
NDOF_BUTTON_3,
"NDOF_BUTTON_3", 0,
"NDOF Button 3",
"NdofB3"},
446 {
NDOF_BUTTON_4,
"NDOF_BUTTON_4", 0,
"NDOF Button 4",
"NdofB4"},
447 {
NDOF_BUTTON_5,
"NDOF_BUTTON_5", 0,
"NDOF Button 5",
"NdofB5"},
448 {
NDOF_BUTTON_6,
"NDOF_BUTTON_6", 0,
"NDOF Button 6",
"NdofB6"},
449 {
NDOF_BUTTON_7,
"NDOF_BUTTON_7", 0,
"NDOF Button 7",
"NdofB7"},
450 {
NDOF_BUTTON_8,
"NDOF_BUTTON_8", 0,
"NDOF Button 8",
"NdofB8"},
451 {
NDOF_BUTTON_9,
"NDOF_BUTTON_9", 0,
"NDOF Button 9",
"NdofB9"},
452 {
NDOF_BUTTON_10,
"NDOF_BUTTON_10", 0,
"NDOF Button 10",
"NdofB10"},
453 {
NDOF_BUTTON_11,
"NDOF_BUTTON_11", 0,
"NDOF Button 11",
"NdofB11"},
454 {
NDOF_BUTTON_12,
"NDOF_BUTTON_12", 0,
"NDOF Button 12",
"NdofB12"},
460 "ACTIONZONE_FULLSCREEN",
462 "ActionZone Fullscreen",
466 {0,
nullptr, 0,
nullptr,
nullptr},
478 {
KM_ANY,
"ANY", 0,
"Any",
""},
479 {
KM_PRESS,
"PRESS", 0,
"Press",
""},
481 {
KM_CLICK,
"CLICK", 0,
"Click",
""},
486 {0,
nullptr, 0,
nullptr,
nullptr},
490 {
KM_ANY,
"ANY", 0,
"Any",
""},
499 {0,
nullptr, 0,
nullptr,
nullptr},
509 {0,
nullptr, 0,
nullptr,
nullptr},
513 {0,
"NONE", 0,
"",
""},
514 {0,
nullptr, 0,
nullptr,
nullptr},
527 {0,
nullptr, 0,
nullptr,
nullptr},
532 {
KM_ANY,
"ANY", 0,
"Any",
""},
533 {0,
"NONE", 0,
"None",
""},
535 {0,
nullptr, 0,
nullptr,
nullptr},
544 "Display in the info window and support the redo toolbar panel"},
549 "Push an undo event when the operator returns `FINISHED` (needed for operator redo, "
550 "mandatory if the operator modifies Blender data)"},
555 "Push a single undo event for repeated instances of this operator"},
556 {
OPTYPE_BLOCKING,
"BLOCKING", 0,
"Blocking",
"Block anything else from using the cursor"},
557 {
OPTYPE_MACRO,
"MACRO", 0,
"Macro",
"Use to check if an operator is a macro"},
562 "Use so the operator grabs the mouse focus, enables wrapping when continuous grab "
570 "The initial cursor location is used, "
571 "when running from a menus or buttons the user is prompted to place the cursor "
572 "before beginning the operation"},
573 {
OPTYPE_PRESET,
"PRESET", 0,
"Preset",
"Display a preset button with the operators settings"},
574 {
OPTYPE_INTERNAL,
"INTERNAL", 0,
"Internal",
"Removes the operator from search results"},
579 "Handle events before other modal operators without this option. Use with caution, do not "
580 "modify data that other modal operators assume is unchanged during their operation."},
581 {0,
nullptr, 0,
nullptr,
nullptr},
589 "Keep the operator running with blender"},
594 "The operator exited without doing anything, so no undo entry should be pushed"},
599 "The operator exited after completing its action"},
602 {
OPERATOR_INTERFACE,
"INTERFACE", 0,
"Interface",
"Handled but not executed (popup menus)"},
603 {0,
nullptr, 0,
nullptr,
nullptr},
611 "The property is advanced so UI is suggested to hide it"},
612 {0,
nullptr, 0,
nullptr,
nullptr},
626 {0,
nullptr, 0,
nullptr,
nullptr},
652 if (
ptr->owner_id ==
nullptr ||
GS(
ptr->owner_id->name) !=
ID_WM) {
660 if (op->properties == properties) {
685static void rna_Operator_name_get(
PointerRNA *
ptr,
char *value)
700 return (op->reports && op->reports->list.first);
722 result.data = op->properties;
734 result.data = otmacro->properties;
751static void rna_Event_unicode_get(
PointerRNA *
ptr,
char *value)
756 if (event->utf8_buf[0]) {
759 memcpy(value, event->utf8_buf,
len);
769 if (event->utf8_buf[0]) {
805static void rna_Event_tilt_get(
PointerRNA *
ptr,
float *values)
811static void rna_NDOFMotionEventData_translation_get(
PointerRNA *
ptr,
float *values)
813# ifdef WITH_INPUT_NDOF
814 const wmNDOFMotionData &ndof = *
static_cast<const wmNDOFMotionData *
>(
ptr->data);
815 copy_v3_v3(values, WM_event_ndof_translation_get(ndof));
822static void rna_NDOFMotionEventData_rotation_get(
PointerRNA *
ptr,
float *values)
824# ifdef WITH_INPUT_NDOF
825 const wmNDOFMotionData &ndof = *
static_cast<const wmNDOFMotionData *
>(
ptr->data);
826 copy_v3_v3(values, WM_event_ndof_rotation_get(ndof));
833static float rna_NDOFMotionEventData_time_delta_get(
PointerRNA *
ptr)
835# ifdef WITH_INPUT_NDOF
836 const wmNDOFMotionData &ndof = *
static_cast<const wmNDOFMotionData *
>(
ptr->data);
844static int rna_NDOFMotionEventData_progress_get(
PointerRNA *
ptr)
846# ifdef WITH_INPUT_NDOF
847 const wmNDOFMotionData &ndof = *
static_cast<const wmNDOFMotionData *
>(
ptr->data);
848 return static_cast<int>(ndof.progress);
857# ifdef WITH_INPUT_NDOF
860 wmNDOFMotionData *ndof =
static_cast<wmNDOFMotionData *
>(
event->customdata);
871# ifdef WITH_XR_OPENXR
873 wmXrActionData *actiondata =
static_cast<wmXrActionData *
>(
874 WM_event_is_xr(event) ?
event->customdata :
nullptr);
913 if (value.
data ==
nullptr) {
963 if (value.
data ==
nullptr) {
1004 if (value.
data ==
nullptr) {
1017 return !screen->
temp;
1106static void rna_wmKeyMapItem_map_type_set(
PointerRNA *
ptr,
int value)
1109 int map_type = rna_wmKeyMapItem_map_type_get(
ptr);
1111 if (value != map_type) {
1141static void rna_wmKeyMapItem_keymodifier_set(
PointerRNA *
ptr,
int value)
1164 int map_type = rna_wmKeyMapItem_map_type_get(
ptr);
1167 return event_mouse_type_items;
1170 return event_timer_type_items;
1173 return event_ndof_type_items;
1176 return event_textinput_type_items;
1198 if (kmi ==
ptr->data) {
1223static void rna_KeyMapItem_any_set(
PointerRNA *
ptr,
bool value)
1280static void rna_WindowManager_active_keyconfig_set(
PointerRNA *
ptr,
1292static void rna_WindowManager_extensions_statusbar_update(
Main * ,
1328static bool rna_wmKeyConfigPref_unregister(
Main * ,
StructRNA *type)
1351 const char *identifier,
1356 const char *error_prefix =
"Registering key-config preferences class:";
1363 nullptr, &RNA_KeyConfigPreferences, &dummy_kpt);
1366 if (validate(&dummy_kpt_ptr,
data,
nullptr ) != 0) {
1371 if (strlen(identifier) >=
sizeof(dummy_kpt_rt.idname)) {
1374 "%s '%s' is too long, maximum length is %d",
1377 int(
sizeof(dummy_kpt_rt.idname)));
1386 "%s '%s', bl_idname '%s' has been registered before, unregistering previous",
1392 if (!(srna && rna_wmKeyConfigPref_unregister(bmain, srna))) {
1395 "%s '%s', bl_idname '%s' %s",
1399 srna ?
"is built-in" :
"could not be unregistered");
1406 memcpy(kpt_rt, &dummy_kpt_rt,
sizeof(dummy_kpt_rt));
1411 kpt_rt->rna_ext.data =
data;
1412 kpt_rt->rna_ext.call = call;
1413 kpt_rt->rna_ext.free =
free;
1421 return kpt_rt->rna_ext.srna;
1427 return (
ptr->type) ?
ptr->type : &RNA_KeyConfigPreferences;
1432static void rna_wmKeyMapItem_idname_get(
PointerRNA *
ptr,
char *value)
1438 memcpy(value, value_buf,
len + 1);
1448static void rna_wmKeyMapItem_idname_set(
PointerRNA *
ptr,
const char *value)
1462static void rna_wmKeyMapItem_name_get(
PointerRNA *
ptr,
char *value)
1486# ifdef WITH_XR_OPENXR
1508 func = &rna_Operator_poll_func;
1512 ot->rna_ext.call(
C, &
ptr, func, &list);
1515 visible = *(
bool *)
ret;
1532 func = &rna_Operator_execute_func;
1564 func = &rna_Operator_check_func;
1588 func = &rna_Operator_invoke_func;
1620 func = &rna_Operator_modal_func;
1647 func = &rna_Operator_draw_func;
1666 func = &rna_Operator_cancel_func;
1675static std::string rna_operator_description_cb(
bContext *
C,
1686 func = &rna_Operator_description_func;
1691 ot->rna_ext.call(
C, &
ptr, func, &list);
1694 std::string
result =
ret ? std::string(
static_cast<const char *
>(
ret)) :
"";
1701static bool rna_Operator_unregister(
Main *bmain,
StructRNA *type);
1711 const char *identifier,
1716 const char *error_prefix =
"Registering operator class:";
1719 bool have_function[8];
1730 dummy_operator.
type = &dummy_ot;
1731 dummy_ot.
idname = temp_buffers.idname;
1732 dummy_ot.
name = temp_buffers.name;
1734 temp_buffers.description;
1736 temp_buffers.translation_context;
1737 dummy_ot.
undo_group = temp_buffers.undo_group;
1739 nullptr, &RNA_Operator, &dummy_operator);
1742 temp_buffers.idname[0] = temp_buffers.name[0] = temp_buffers.description[0] =
1743 temp_buffers.undo_group[0] = temp_buffers.translation_context[0] =
'\0';
1746 if (validate(&dummy_operator_ptr,
data, have_function) != 0) {
1756 "%s '%s', bl_idname '%s' has been registered before, unregistering previous",
1762 if (!(srna && rna_Operator_unregister(bmain, srna))) {
1765 "%s '%s', bl_idname '%s' %s",
1769 srna ?
"is built-in" :
"could not be unregistered");
1779 char idname_conv[
sizeof(dummy_operator.
idname)];
1787 if (temp_buffers.translation_context[0] ==
'\0') {
1794 const char *strings[] = {
1797 temp_buffers.description,
1798 temp_buffers.translation_context,
1799 temp_buffers.undo_group,
1803 '\0', strings_table, strings,
ARRAY_SIZE(strings));
1805 dummy_ot.
idname = strings_table[0];
1806 dummy_ot.
name = strings_table[1];
1807 dummy_ot.
description = *strings_table[2] ? strings_table[2] :
nullptr;
1829 dummy_ot.
exec = (have_function[1]) ? rna_operator_exec_cb :
nullptr;
1830 dummy_ot.
check = (have_function[2]) ? rna_operator_check_cb :
nullptr;
1831 dummy_ot.
invoke = (have_function[3]) ? rna_operator_invoke_cb :
nullptr;
1832 dummy_ot.
modal = (have_function[4]) ? rna_operator_modal_cb :
nullptr;
1833 dummy_ot.
ui = (have_function[5]) ? rna_operator_draw_cb :
nullptr;
1834 dummy_ot.
cancel = (have_function[6]) ? rna_operator_cancel_cb :
nullptr;
1844static bool rna_Operator_unregister(
Main *bmain,
StructRNA *type)
1865 idname =
ot->idname;
1885 const char *identifier,
1890 const char *error_prefix =
"Registering operator macro class:";
1893 bool have_function[2];
1904 dummy_operator.
type = &dummy_ot;
1905 dummy_ot.
idname = temp_buffers.idname;
1906 dummy_ot.
name = temp_buffers.name;
1908 temp_buffers.description;
1910 temp_buffers.translation_context;
1911 dummy_ot.
undo_group = temp_buffers.undo_group;
1913 nullptr, &RNA_Macro, &dummy_operator);
1916 temp_buffers.idname[0] = temp_buffers.name[0] = temp_buffers.description[0] =
1917 temp_buffers.undo_group[0] = temp_buffers.translation_context[0] =
'\0';
1920 if (validate(&dummy_operator_ptr,
data, have_function) != 0) {
1934 "%s '%s', bl_idname '%s' has been registered before, unregistering previous",
1940 if (!(srna && rna_Operator_unregister(bmain, srna))) {
1943 "%s '%s', bl_idname '%s' %s",
1947 srna ?
"is built-in" :
"could not be unregistered");
1953 char idname_conv[
sizeof(dummy_operator.
idname)];
1961 if (temp_buffers.translation_context[0] ==
'\0') {
1968 const char *strings[] = {
1971 temp_buffers.description,
1972 temp_buffers.translation_context,
1973 temp_buffers.undo_group,
1977 '\0', strings_table, strings,
ARRAY_SIZE(strings));
1979 dummy_ot.
idname = strings_table[0];
1980 dummy_ot.
name = strings_table[1];
1981 dummy_ot.
description = *strings_table[2] ? strings_table[2] :
nullptr;
1998 dummy_ot.
ui = (have_function[1]) ? rna_operator_draw_cb :
nullptr;
2022static void rna_Operator_bl_idname_set(
PointerRNA *
ptr,
const char *value)
2025 char *
str = (
char *)
data->type->idname;
2033 BLI_assert_msg(0,
"setting the bl_idname on a non-builtin operator");
2037static void rna_Operator_bl_label_set(
PointerRNA *
ptr,
const char *value)
2040 char *
str = (
char *)
data->type->name;
2045 BLI_assert_msg(0,
"setting the bl_label on a non-builtin operator");
2054# define OPERATOR_STR_MAYBE_NULL_GETSET(attr, attr_maxncpy) \
2055 static void rna_Operator_bl_##attr##_set(PointerRNA *ptr, const char *value) \
2057 wmOperator *data = (wmOperator *)(ptr->data); \
2058 char *str = (char *)data->type->attr; \
2059 if (str && !str[0]) { \
2060 BLI_strncpy_utf8(str, value, attr_maxncpy); \
2063 BLI_assert_msg(false, "setting the bl_" #attr " on a non-builtin operator"); \
2066 static void rna_Operator_bl_##attr##_get(PointerRNA *ptr, char *value) \
2068 const wmOperator *data = (wmOperator *)(ptr->data); \
2069 const char *str = data->type->attr; \
2070 strcpy(value, str ? str : ""); \
2072 static int rna_Operator_bl_##attr##_length(PointerRNA *ptr) \
2074 const wmOperator *data = (wmOperator *)(ptr->data); \
2075 const char *str = data->type->attr; \
2076 return str ? strlen(str) : 0; \
2079OPERATOR_STR_MAYBE_NULL_GETSET(translation_context,
BKE_ST_MAXNAME)
2112 prop,
"Invoke",
"True when invoked (even if only the execute callbacks available)");
2128 prop,
"Focus Region",
"Enable to use the region under the cursor for modal execution");
2138 prop,
"rna_Operator_name_get",
"rna_Operator_name_length",
nullptr);
2153 "Operator has a set of reports (warnings and errors) from last execution");
2177 "rna_Operator_bl_translation_context_get",
2178 "rna_Operator_bl_translation_context_length",
2179 "rna_Operator_bl_translation_context_set");
2187 "rna_Operator_bl_description_get",
2188 "rna_Operator_bl_description_length",
2189 "rna_Operator_bl_description_set");
2197 "rna_Operator_bl_undo_group_get",
2198 "rna_Operator_bl_undo_group_length",
2199 "rna_Operator_bl_undo_group_set");
2216 "Cursor to use when waiting for the user to select a location to activate the operator "
2217 "(when ``bl_options`` has ``DEPENDS_ON_CURSOR`` set)");
2227 srna,
"Operator",
"Storage of an operator being executed, or registered after execution");
2232 srna,
"rna_Operator_register",
"rna_Operator_unregister",
"rna_Operator_instance");
2272 "Storage of a macro operator being executed, or registered after execution");
2277 srna,
"rna_MacroOperator_register",
"rna_Operator_unregister",
"rna_Operator_instance");
2294 srna,
"Operator Macro",
"Storage of a sub operator in a macro after it has been added");
2310 prop,
"rna_OperatorMacro_properties_get",
nullptr,
nullptr,
nullptr);
2318 srna =
RNA_def_struct(brna,
"OperatorMousePath",
"PropertyGroup");
2320 srna,
"Operator Mouse Path",
"Mouse path values for operators that record such paths");
2337 srna =
RNA_def_struct(brna,
"OperatorFileListElement",
"PropertyGroup");
2359 "The translation of this motion event. "
2360 "The range on each axis is [-1 to 1], "
2361 "before being multiplied by the sensitivity preference. "
2362 "This is typically scaled by the time-delta before use.");
2370 "Axis-angle rotation of this motion event. "
2371 "The vector magnitude is the angle where 1.0 represents 360 degrees. "
2372 "The angle is typically scaled by the time-delta before use.");
2406 prop,
"rna_Event_unicode_get",
"rna_Event_unicode_length",
nullptr);
2454 "Part of a trackpad or NDOF motion, "
2455 "interrupted by cursor motion, button or key press events");
2462 prop,
"Mouse X Position",
"The window relative horizontal location of the mouse");
2468 prop,
"Mouse Y Position",
"The window relative vertical location of the mouse");
2474 prop,
"Mouse X Position",
"The region relative horizontal location of the mouse");
2480 prop,
"Mouse Y Position",
"The region relative vertical location of the mouse");
2486 prop,
"Mouse Previous X Position",
"The window relative horizontal location of the mouse");
2492 prop,
"Mouse Previous Y Position",
"The window relative vertical location of the mouse");
2498 "Mouse Previous X Press Position",
2499 "The window relative horizontal location of the last press event");
2505 "Mouse Previous Y Press Position",
2506 "The window relative vertical location of the last press event");
2513 prop,
"Tablet Pressure",
"The pressure of the tablet or 1.0 if no tablet present");
2520 prop,
"Tablet Tilt",
"The pressure of the tablet or zeroes if no tablet present");
2607 const char *rna_type,
2609 const char *layout_get_fn)
2700 prop,
"rna_Window_workspace_get",
"rna_Window_workspace_set",
nullptr,
nullptr);
2708 "rna_Window_screen_get",
2709 "rna_Window_screen_set",
2711 "rna_Window_screen_assign_poll");
2719 prop,
"rna_Window_view_layer_get",
"rna_Window_view_layer_set",
nullptr,
nullptr);
2721 prop,
"Active View Layer",
"The active workspace view layer showing in the window");
2755 "rna_Window_modal_operators_begin",
2756 "rna_iterator_listbase_next",
2757 "rna_iterator_listbase_end",
2758 "rna_Window_modal_operators_get",
2782 "rna_WindowManager_active_keyconfig_get",
2783 "rna_WindowManager_active_keyconfig_set",
2799 "Add-on Key Configuration",
2800 "Key configuration that can be extended by add-ons, and is added to the active "
2801 "configuration when handling events");
2808 "User Key Configuration",
2809 "Final key configuration that combines keymaps from the active and add-on configurations, "
2810 "and can be edited by the user");
2824 "Window manager data-block defining open windows and other user interface data");
2849 prop,
"rna_WindowManager_xr_session_state_get",
nullptr,
nullptr,
nullptr);
2852 prop,
"XR Session State",
"Runtime state information about the VR session");
2856 prop,
"Extensions Updates",
"Number of extensions with available update");
2861 prop,
"Extensions Blocked",
"Number of installed extensions which are blocked");
2903 srna,
"rna_wmKeyConfigPref_register",
"rna_wmKeyConfigPref_unregister",
nullptr);
2926 {0,
nullptr, 0,
nullptr,
nullptr},
2948 prop,
"User Defined",
"Indicates that a keyconfig was defined by the user");
2954 prop,
"rna_wmKeyConfig_preferences_get",
nullptr,
nullptr,
nullptr);
2989 prop,
"Items",
"Items in the keymap, linking an operator to an input event");
3002 "Indicates that a keymap is used for translate modal events for an operator");
3018 "rna_KeyMap_modal_event_values_items_begin",
3019 "rna_iterator_array_next",
3020 "rna_iterator_array_end",
3021 "rna_iterator_array_get",
3028 "Give access to the possible event values of this modal keymap's items "
3029 "(#KeyMapItem.propvalue), for API introspection");
3042 "rna_wmKeyMapItem_idname_get",
3043 "rna_wmKeyMapItem_idname_length",
3044 "rna_wmKeyMapItem_idname_set");
3046 "WM_operatortype_idname_visit_for_search",
3057 prop,
"rna_wmKeyMapItem_name_get",
"rna_wmKeyMapItem_name_length",
nullptr);
3069 prop,
"rna_wmKeyMapItem_map_type_get",
"rna_wmKeyMapItem_map_type_set",
nullptr);
3173 "Hyper key pressed. "
3175 "An additional modifier which can be configured on Linux, typically replacing CapsLock");
3197 prop,
"Expanded",
"Show key map event and property details in the user interface");
3206 prop,
"Property Value",
"The value this event translates to in a modal keymap");
3226 "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_STATIC_ASSERT(a, msg)
#define BLI_assert_msg(a, msg)
void BLI_kdtree_nd_ free(KDTree *tree)
#define LISTBASE_FOREACH(type, var, list)
void * BLI_findstring(const ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE void copy_v3_v3(float r[3], const float a[3])
char * STRNCPY(char(&dst)[N], const char *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
const char 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 ARRAY_SET_ITEMS(...)
#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
ID and Library types, which are fundamental for SDNA.
@ S3D_SIDEBYSIDE_CROSSEYED
@ STATUSBAR_SHOW_EXTENSIONS_UPDATES
@ OP_IS_MODAL_CURSOR_REGION
@ OP_IS_MODAL_GRAB_CURSOR
#define OPERATOR_RETVAL_CHECK(ret)
@ KEYMAP_CHILDREN_EXPANDED
@ 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
int(*)(bContext *C, PointerRNA *ptr, FunctionRNA *func, ParameterList *list) StructCallbackFunc
void(*)(void *data) StructFreeFunc
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
@ WM_EVENT_IS_CONSECUTIVE
#define OP_PROP_TAG_ADVANCED
@ OPTYPE_DEPENDS_ON_CURSOR
BMesh const char void * data
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)
PointerRNA RNA_pointer_create_id_subdata(ID &id, StructRNA *type, void *data)
bool RNA_struct_available_or_report(ReportList *reports, const char *identifier)
void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type)
void rna_iterator_array_begin(CollectionPropertyIterator *iter, PointerRNA *ptr, void *data, int itemsize, int length, bool free_ptr, IteratorSkipFunc skip)
uint RNA_enum_items_count(const EnumPropertyItem *item)
const PointerRNA PointerRNA_NULL
void * RNA_struct_blender_type_get(StructRNA *srna)
void RNA_parameter_list_free(ParameterList *parms)
void rna_iterator_listbase_begin(CollectionPropertyIterator *iter, PointerRNA *ptr, ListBase *lb, IteratorSkipFunc skip)
void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value)
ParameterList * RNA_parameter_list_create(ParameterList *parms, PointerRNA *, FunctionRNA *func)
PointerRNA RNA_pointer_create_discrete(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_pointer_create_with_parent(const PointerRNA &parent, StructRNA *type, void *data)
PointerRNA RNA_id_pointer_create(ID *id)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
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_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_event_ndof_motion(BlenderRNA *brna)
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 const EnumPropertyItem rna_enum_ndof_motion_progress_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
wmOperatorStatus(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
std::string(* get_description)(bContext *C, wmOperatorType *ot, PointerRNA *ptr)
bool(* check)(bContext *C, wmOperator *op)
bool(* pyop_poll)(bContext *C, wmOperatorType *ot) ATTR_WARN_UNUSED_RESULT
const char * translation_context
wmOperatorStatus(* invoke)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
void(* ui)(bContext *C, wmOperator *op)
wmOperatorStatus(* modal)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
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)
@ EVT_ACTIONZONE_FULLSCREEN
#define ISKEYBOARD(event_type)
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)