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) {
661 if (op->properties == properties) {
686static void rna_Operator_name_get(
PointerRNA *
ptr,
char *value)
701 return (op->reports && op->reports->list.first);
723 result.data = op->properties;
735 result.data = otmacro->properties;
752static void rna_Event_unicode_get(
PointerRNA *
ptr,
char *value)
757 if (event->utf8_buf[0]) {
760 memcpy(value, event->utf8_buf,
len);
770 if (event->utf8_buf[0]) {
806static void rna_Event_tilt_get(
PointerRNA *
ptr,
float *values)
812static void rna_NDOFMotionEventData_translation_get(
PointerRNA *
ptr,
float *values)
814# ifdef WITH_INPUT_NDOF
815 const wmNDOFMotionData &ndof = *
static_cast<const wmNDOFMotionData *
>(
ptr->data);
816 copy_v3_v3(values, WM_event_ndof_translation_get(ndof));
823static void rna_NDOFMotionEventData_rotation_get(
PointerRNA *
ptr,
float *values)
825# ifdef WITH_INPUT_NDOF
826 const wmNDOFMotionData &ndof = *
static_cast<const wmNDOFMotionData *
>(
ptr->data);
827 copy_v3_v3(values, WM_event_ndof_rotation_get(ndof));
834static float rna_NDOFMotionEventData_time_delta_get(
PointerRNA *
ptr)
836# ifdef WITH_INPUT_NDOF
837 const wmNDOFMotionData &ndof = *
static_cast<const wmNDOFMotionData *
>(
ptr->data);
838 return ndof.time_delta;
845static int rna_NDOFMotionEventData_progress_get(
PointerRNA *
ptr)
847# ifdef WITH_INPUT_NDOF
848 const wmNDOFMotionData &ndof = *
static_cast<const wmNDOFMotionData *
>(
ptr->data);
849 return int(ndof.progress);
858# ifdef WITH_INPUT_NDOF
861 wmNDOFMotionData *ndof =
static_cast<wmNDOFMotionData *
>(
event->customdata);
872# ifdef WITH_XR_OPENXR
874 wmXrActionData *actiondata =
static_cast<wmXrActionData *
>(
875 WM_event_is_xr(event) ?
event->customdata :
nullptr);
914 if (value.
data ==
nullptr) {
964 if (value.
data ==
nullptr) {
1005 if (value.
data ==
nullptr) {
1018 return !screen->
temp;
1052static bool rna_Window_support_hdr_color_get(
PointerRNA *
ptr)
1113static void rna_wmKeyMapItem_map_type_set(
PointerRNA *
ptr,
int value)
1116 int map_type = rna_wmKeyMapItem_map_type_get(
ptr);
1118 if (value != map_type) {
1148static void rna_wmKeyMapItem_keymodifier_set(
PointerRNA *
ptr,
int value)
1171 int map_type = rna_wmKeyMapItem_map_type_get(
ptr);
1174 return event_mouse_type_items;
1177 return event_timer_type_items;
1180 return event_ndof_type_items;
1183 return event_textinput_type_items;
1205 if (kmi ==
ptr->data) {
1230static void rna_KeyMapItem_any_set(
PointerRNA *
ptr,
bool value)
1281 kc = wm->
runtime->defaultconf;
1287static void rna_WindowManager_active_keyconfig_set(
PointerRNA *
ptr,
1317static void rna_WindowManager_extensions_statusbar_update(
Main * ,
1353static bool rna_wmKeyConfigPref_unregister(
Main * ,
StructRNA *type)
1376 const char *identifier,
1381 const char *error_prefix =
"Registering key-config preferences class:";
1388 nullptr, &RNA_KeyConfigPreferences, &dummy_kpt);
1391 if (validate(&dummy_kpt_ptr,
data,
nullptr ) != 0) {
1396 if (strlen(identifier) >=
sizeof(dummy_kpt_rt.idname)) {
1399 "%s '%s' is too long, maximum length is %d",
1402 int(
sizeof(dummy_kpt_rt.idname)));
1411 "%s '%s', bl_idname '%s' has been registered before, unregistering previous",
1417 if (!(srna && rna_wmKeyConfigPref_unregister(bmain, srna))) {
1420 "%s '%s', bl_idname '%s' %s",
1424 srna ?
"is built-in" :
"could not be unregistered");
1431 memcpy(kpt_rt, &dummy_kpt_rt,
sizeof(dummy_kpt_rt));
1436 kpt_rt->rna_ext.data =
data;
1437 kpt_rt->rna_ext.call = call;
1438 kpt_rt->rna_ext.free =
free;
1446 return kpt_rt->rna_ext.srna;
1452 return (
ptr->type) ?
ptr->type : &RNA_KeyConfigPreferences;
1457static void rna_wmKeyMapItem_idname_get(
PointerRNA *
ptr,
char *value)
1463 memcpy(value, value_buf,
len + 1);
1473static void rna_wmKeyMapItem_idname_set(
PointerRNA *
ptr,
const char *value)
1487static void rna_wmKeyMapItem_name_get(
PointerRNA *
ptr,
char *value)
1523# ifdef WITH_XR_OPENXR
1545 func = &rna_Operator_poll_func;
1549 ot->rna_ext.call(
C, &
ptr, func, &list);
1552 visible = *(
bool *)
ret;
1569 func = &rna_Operator_execute_func;
1601 func = &rna_Operator_check_func;
1625 func = &rna_Operator_invoke_func;
1657 func = &rna_Operator_modal_func;
1684 func = &rna_Operator_draw_func;
1703 func = &rna_Operator_cancel_func;
1712static std::string rna_operator_description_cb(
bContext *
C,
1723 func = &rna_Operator_description_func;
1728 ot->rna_ext.call(
C, &
ptr, func, &list);
1731 std::string
result =
ret ? std::string(
static_cast<const char *
>(
ret)) :
"";
1738static bool rna_Operator_unregister(
Main *bmain,
StructRNA *type);
1748 const char *identifier,
1753 const char *error_prefix =
"Registering operator class:";
1756 bool have_function[8];
1767 dummy_operator.
type = &dummy_ot;
1768 dummy_ot.
idname = temp_buffers.idname;
1769 dummy_ot.
name = temp_buffers.name;
1771 temp_buffers.description;
1773 temp_buffers.translation_context;
1774 dummy_ot.
undo_group = temp_buffers.undo_group;
1776 nullptr, &RNA_Operator, &dummy_operator);
1779 temp_buffers.idname[0] = temp_buffers.name[0] = temp_buffers.description[0] =
1780 temp_buffers.undo_group[0] = temp_buffers.translation_context[0] =
'\0';
1783 if (validate(&dummy_operator_ptr,
data, have_function) != 0) {
1793 "%s '%s', bl_idname '%s' has been registered before, unregistering previous",
1799 if (!(srna && rna_Operator_unregister(bmain, srna))) {
1802 "%s '%s', bl_idname '%s' %s",
1806 srna ?
"is built-in" :
"could not be unregistered");
1816 char idname_conv[
sizeof(dummy_operator.
idname)];
1824 if (temp_buffers.translation_context[0] ==
'\0') {
1831 const char *strings[] = {
1834 temp_buffers.description,
1835 temp_buffers.translation_context,
1836 temp_buffers.undo_group,
1840 '\0', strings_table, strings,
ARRAY_SIZE(strings));
1842 dummy_ot.
idname = strings_table[0];
1843 dummy_ot.
name = strings_table[1];
1844 dummy_ot.
description = *strings_table[2] ? strings_table[2] :
nullptr;
1866 dummy_ot.
exec = (have_function[1]) ? rna_operator_exec_cb :
nullptr;
1867 dummy_ot.
check = (have_function[2]) ? rna_operator_check_cb :
nullptr;
1868 dummy_ot.
invoke = (have_function[3]) ? rna_operator_invoke_cb :
nullptr;
1869 dummy_ot.
modal = (have_function[4]) ? rna_operator_modal_cb :
nullptr;
1870 dummy_ot.
ui = (have_function[5]) ? rna_operator_draw_cb :
nullptr;
1871 dummy_ot.
cancel = (have_function[6]) ? rna_operator_cancel_cb :
nullptr;
1881static bool rna_Operator_unregister(
Main *bmain,
StructRNA *type)
1902 idname =
ot->idname;
1922 const char *identifier,
1927 const char *error_prefix =
"Registering operator macro class:";
1930 bool have_function[2];
1941 dummy_operator.
type = &dummy_ot;
1942 dummy_ot.
idname = temp_buffers.idname;
1943 dummy_ot.
name = temp_buffers.name;
1945 temp_buffers.description;
1947 temp_buffers.translation_context;
1948 dummy_ot.
undo_group = temp_buffers.undo_group;
1950 nullptr, &RNA_Macro, &dummy_operator);
1953 temp_buffers.idname[0] = temp_buffers.name[0] = temp_buffers.description[0] =
1954 temp_buffers.undo_group[0] = temp_buffers.translation_context[0] =
'\0';
1957 if (validate(&dummy_operator_ptr,
data, have_function) != 0) {
1971 "%s '%s', bl_idname '%s' has been registered before, unregistering previous",
1977 if (!(srna && rna_Operator_unregister(bmain, srna))) {
1980 "%s '%s', bl_idname '%s' %s",
1984 srna ?
"is built-in" :
"could not be unregistered");
1990 char idname_conv[
sizeof(dummy_operator.
idname)];
1998 if (temp_buffers.translation_context[0] ==
'\0') {
2005 const char *strings[] = {
2008 temp_buffers.description,
2009 temp_buffers.translation_context,
2010 temp_buffers.undo_group,
2014 '\0', strings_table, strings,
ARRAY_SIZE(strings));
2016 dummy_ot.
idname = strings_table[0];
2017 dummy_ot.
name = strings_table[1];
2018 dummy_ot.
description = *strings_table[2] ? strings_table[2] :
nullptr;
2035 dummy_ot.
ui = (have_function[1]) ? rna_operator_draw_cb :
nullptr;
2059static void rna_Operator_bl_idname_set(
PointerRNA *
ptr,
const char *value)
2062 char *
str = (
char *)
data->type->idname;
2070 BLI_assert_msg(0,
"setting the bl_idname on a non-builtin operator");
2074static void rna_Operator_bl_label_set(
PointerRNA *
ptr,
const char *value)
2077 char *
str = (
char *)
data->type->name;
2082 BLI_assert_msg(0,
"setting the bl_label on a non-builtin operator");
2091# define OPERATOR_STR_MAYBE_NULL_GETSET(attr, attr_maxncpy) \
2092 static void rna_Operator_bl_##attr##_set(PointerRNA *ptr, const char *value) \
2094 wmOperator *data = (wmOperator *)(ptr->data); \
2095 char *str = (char *)data->type->attr; \
2096 if (str && !str[0]) { \
2097 BLI_strncpy_utf8(str, value, attr_maxncpy); \
2100 BLI_assert_msg(false, "setting the bl_" #attr " on a non-builtin operator"); \
2103 static void rna_Operator_bl_##attr##_get(PointerRNA *ptr, char *value) \
2105 const wmOperator *data = (wmOperator *)(ptr->data); \
2106 const char *str = data->type->attr; \
2107 strcpy(value, str ? str : ""); \
2109 static int rna_Operator_bl_##attr##_length(PointerRNA *ptr) \
2111 const wmOperator *data = (wmOperator *)(ptr->data); \
2112 const char *str = data->type->attr; \
2113 return str ? strlen(str) : 0; \
2116OPERATOR_STR_MAYBE_NULL_GETSET(translation_context,
BKE_ST_MAXNAME)
2149 prop,
"Invoke",
"True when invoked (even if only the execute callbacks available)");
2165 prop,
"Focus Region",
"Enable to use the region under the cursor for modal execution");
2175 prop,
"rna_Operator_name_get",
"rna_Operator_name_length",
nullptr);
2190 "Operator has a set of reports (warnings and errors) from last execution");
2214 "rna_Operator_bl_translation_context_get",
2215 "rna_Operator_bl_translation_context_length",
2216 "rna_Operator_bl_translation_context_set");
2224 "rna_Operator_bl_description_get",
2225 "rna_Operator_bl_description_length",
2226 "rna_Operator_bl_description_set");
2234 "rna_Operator_bl_undo_group_get",
2235 "rna_Operator_bl_undo_group_length",
2236 "rna_Operator_bl_undo_group_set");
2253 "Cursor to use when waiting for the user to select a location to activate the operator "
2254 "(when ``bl_options`` has ``DEPENDS_ON_CURSOR`` set)");
2264 srna,
"Operator",
"Storage of an operator being executed, or registered after execution");
2269 srna,
"rna_Operator_register",
"rna_Operator_unregister",
"rna_Operator_instance");
2312 "Storage of a macro operator being executed, or registered after execution");
2317 srna,
"rna_MacroOperator_register",
"rna_Operator_unregister",
"rna_Operator_instance");
2334 srna,
"Operator Macro",
"Storage of a sub operator in a macro after it has been added");
2350 prop,
"rna_OperatorMacro_properties_get",
nullptr,
nullptr,
nullptr);
2358 srna =
RNA_def_struct(brna,
"OperatorMousePath",
"PropertyGroup");
2360 srna,
"Operator Mouse Path",
"Mouse path values for operators that record such paths");
2377 srna =
RNA_def_struct(brna,
"OperatorFileListElement",
"PropertyGroup");
2399 "The translation of this motion event. "
2400 "The range on each axis is [-1 to 1], "
2401 "before being multiplied by the sensitivity preference. "
2402 "This is typically scaled by the time-delta before use.");
2410 "Axis-angle rotation of this motion event. "
2411 "The vector magnitude is the angle where 1.0 represents 360 degrees. "
2412 "The angle is typically scaled by the time-delta before use.");
2446 prop,
"rna_Event_unicode_get",
"rna_Event_unicode_length",
nullptr);
2494 "Part of a trackpad or NDOF motion, "
2495 "interrupted by cursor motion, button or key press events");
2502 prop,
"Mouse X Position",
"The window relative horizontal location of the mouse");
2508 prop,
"Mouse Y Position",
"The window relative vertical location of the mouse");
2514 prop,
"Mouse X Position",
"The region relative horizontal location of the mouse");
2520 prop,
"Mouse Y Position",
"The region relative vertical location of the mouse");
2526 prop,
"Mouse Previous X Position",
"The window relative horizontal location of the mouse");
2532 prop,
"Mouse Previous Y Position",
"The window relative vertical location of the mouse");
2538 "Mouse Previous X Press Position",
2539 "The window relative horizontal location of the last press event");
2545 "Mouse Previous Y Press Position",
2546 "The window relative vertical location of the last press event");
2553 prop,
"Tablet Pressure",
"The pressure of the tablet or 1.0 if no tablet present");
2560 prop,
"Tablet Tilt",
"The pressure of the tablet or zeroes if no tablet present");
2647 const char *rna_type,
2649 const char *layout_get_fn)
2740 prop,
"rna_Window_workspace_get",
"rna_Window_workspace_set",
nullptr,
nullptr);
2748 "rna_Window_screen_get",
2749 "rna_Window_screen_set",
2751 "rna_Window_screen_assign_poll");
2759 prop,
"rna_Window_view_layer_get",
"rna_Window_view_layer_set",
nullptr,
nullptr);
2761 prop,
"Active View Layer",
"The active workspace view layer showing in the window");
2794 "Support HDR Color",
2795 "The window has a HDR graphics buffer that wide gamut and high dynamic "
2796 "range colors can be written to, in extended sRGB color space.");
2803 "rna_Window_modal_operators_begin",
2804 "rna_iterator_listbase_next",
2805 "rna_iterator_listbase_end",
2806 "rna_Window_modal_operators_get",
2830 "rna_WindowManager_active_keyconfig_get",
2831 "rna_WindowManager_active_keyconfig_set",
2839 prop,
"rna_WindowManager_default_keyconfig_get",
nullptr,
nullptr,
nullptr);
2846 prop,
"rna_WindowManager_addon_keyconfig_get",
nullptr,
nullptr,
nullptr);
2849 "Add-on Key Configuration",
2850 "Key configuration that can be extended by add-ons, and is added to the active "
2851 "configuration when handling events");
2856 prop,
"rna_WindowManager_user_keyconfig_get",
nullptr,
nullptr,
nullptr);
2859 "User Key Configuration",
2860 "Final key configuration that combines keymaps from the active and add-on configurations, "
2861 "and can be edited by the user");
2875 "Window manager data-block defining open windows and other user interface data");
2882 "rna_WindowManager_operators_begin",
2883 "rna_iterator_listbase_next",
2884 "rna_iterator_listbase_end",
2885 "rna_iterator_listbase_get",
2899 "rna_WindowManager_keyconfigs_begin",
2900 "rna_iterator_listbase_next",
2901 "rna_iterator_listbase_end",
2902 "rna_iterator_listbase_get",
2918 prop,
"rna_WindowManager_xr_session_state_get",
nullptr,
nullptr,
nullptr);
2921 prop,
"XR Session State",
"Runtime state information about the VR session");
2925 prop,
"Extensions Updates",
"Number of extensions with available update");
2930 prop,
"Extensions Blocked",
"Number of installed extensions which are blocked");
2972 srna,
"rna_wmKeyConfigPref_register",
"rna_wmKeyConfigPref_unregister",
nullptr);
2995 {0,
nullptr, 0,
nullptr,
nullptr},
3017 prop,
"User Defined",
"Indicates that a keyconfig was defined by the user");
3023 prop,
"rna_wmKeyConfig_preferences_get",
nullptr,
nullptr,
nullptr);
3058 prop,
"Items",
"Items in the keymap, linking an operator to an input event");
3071 "Indicates that a keymap is used for translate modal events for an operator");
3087 "rna_KeyMap_modal_event_values_items_begin",
3088 "rna_iterator_array_next",
3089 "rna_iterator_array_end",
3090 "rna_iterator_array_get",
3097 "Give access to the possible event values of this modal keymap's items "
3098 "(#KeyMapItem.propvalue), for API introspection");
3111 "rna_wmKeyMapItem_idname_get",
3112 "rna_wmKeyMapItem_idname_length",
3113 "rna_wmKeyMapItem_idname_set");
3115 "WM_operatortype_idname_visit_for_search",
3126 prop,
"rna_wmKeyMapItem_name_get",
"rna_wmKeyMapItem_name_length",
nullptr);
3138 prop,
"rna_wmKeyMapItem_map_type_get",
"rna_wmKeyMapItem_map_type_set",
nullptr);
3242 "Hyper key pressed. "
3244 "An additional modifier which can be configured on Linux, typically replacing CapsLock");
3266 prop,
"Expanded",
"Show key map event and property details in the user interface");
3275 prop,
"Property Value",
"The value this event translates to in a modal keymap");
3295 "Is this keymap item user defined (does not 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
@ RPT_ERROR_OUT_OF_MEMORY
@ RPT_ERROR_INVALID_INPUT
@ RPT_ERROR_INVALID_CONTEXT
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
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
@ OPTYPE_DEPENDS_ON_CURSOR
#define OP_PROP_TAG_ADVANCED
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)
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)
void rna_iterator_array_begin(CollectionPropertyIterator *iter, PointerRNA *ptr, void *data, size_t itemsize, int64_t length, bool free_ptr, IteratorSkipFunc skip)
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_system_idprops_func(StructRNA *srna, const char *system_idproperties)
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
WindowManagerRuntimeHandle * runtime
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)
bool WM_window_support_hdr_color(const wmWindow *win)
wmXrSessionState * WM_xr_session_state_handle_get(const wmXrData *xr)