Blender V5.0
WM_api.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2007 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4#pragma once
5
16
17#include <optional>
18#include <string>
19
21
22#include "BLI_array.hh"
23#include "BLI_bounds_types.hh"
24#include "BLI_compiler_attrs.h"
25#include "BLI_function_ref.hh"
27#include "BLI_sys_types.h"
28
29#include "WM_keymap.hh"
30#include "WM_types.hh"
31
32struct ARegion;
33struct GPUViewport;
34struct ID;
35struct IDProperty;
36struct ImBuf;
37struct ImageFormatData;
38struct Main;
39struct MenuType;
40struct PointerRNA;
41struct PropertyRNA;
42struct ScrArea;
43struct View3D;
44struct ViewLayer;
45struct bContext;
46struct rcti;
47struct uiListType;
48struct WorkSpace;
49struct WorkSpaceLayout;
50struct wmDrag;
51struct wmDropBox;
52struct wmEvent;
58struct wmGesture;
59struct wmJob;
61struct wmOperator;
62struct wmOperatorType;
63struct wmPaintCursor;
64struct wmTabletData;
65
66#ifdef WITH_INPUT_NDOF
67struct wmNDOFMotionData;
68#endif
69
70#ifdef WITH_XR_OPENXR
71struct wmXrRuntimeData;
72struct wmXrSessionState;
73#endif
74
75namespace blender::bke::id {
76class IDRemapper;
77}
78
79namespace blender::asset_system {
81}
82
83/* General API. */
84
93
97void WM_init_state_size_set(int stax, int stay, int sizx, int sizy);
105void WM_init_window_focus_set(bool do_it);
107void WM_init_window_frame_set(bool do_it);
108void WM_init_native_pixels(bool do_it);
110
115void WM_init(bContext *C, int argc, const char **argv);
131void WM_exit_ex(bContext *C, bool do_python_exit, bool do_user_exit_actions);
132
144void WM_exit(bContext *C, int exit_code) ATTR_NORETURN;
145
147
158
159void WM_init_gpu();
160
166const char *WM_ghost_backend();
167
216
217
224
225void WM_check(bContext *C);
226void WM_reinit_gizmomap_all(Main *bmain);
227
233
235 const int event_xy[2],
236 int r_event_xy_other[2]);
237
243
248bool WM_desktop_cursor_sample_read(float r_col[3]);
249
262 const wmWindow *win,
263 int r_size[2]);
266 const wmWindow *win,
267 const int pos[2],
268 float r_col[3]);
269
280 wmWindow *win,
281 const int pos[2],
282 float r_col[3]);
283
289uint8_t *WM_window_pixels_read(bContext *C, wmWindow *win, int r_size[2]);
295bool WM_window_pixels_read_sample(bContext *C, wmWindow *win, const int pos[2], float r_col[3]);
296
302int WM_window_native_pixel_x(const wmWindow *win);
303int WM_window_native_pixel_y(const wmWindow *win);
304
306
307void WM_window_native_pixel_coords(const wmWindow *win, int *x, int *y);
311void WM_window_rect_calc(const wmWindow *win, rcti *r_rect);
316void WM_window_screen_rect_calc(const wmWindow *win, rcti *r_rect);
318bool WM_window_is_fullscreen(const wmWindow *win);
319bool WM_window_is_maximized(const wmWindow *win);
320
321/*
322 * Support for wide gamut and HDR colors.
323 */
325
331void WM_windows_scene_data_sync(const ListBase *win_lb, Scene *scene) ATTR_NONNULL();
338
343void WM_window_set_active_scene(Main *bmain, bContext *C, wmWindow *win, Scene *scene)
344 ATTR_NONNULL();
348 ATTR_NONNULL(1);
352 ATTR_NONNULL(1);
357void WM_window_set_active_screen(wmWindow *win, WorkSpace *workspace, bScreen *screen)
358 ATTR_NONNULL(1);
359
364
366
368void WM_system_gpu_context_dispose(void *context);
369void WM_system_gpu_context_activate(void *context);
370void WM_system_gpu_context_release(void *context);
371
378
393 const char *title,
394 const rcti *rect_unscaled,
395 int space_type,
396 bool toplevel,
397 bool dialog,
398 bool temp,
399 eWindowAlignment alignment,
400 void (*area_setup_fn)(bScreen *screen, ScrArea *area, void *user_data),
401 void *area_setup_user_data) ATTR_NONNULL(1, 3);
402
403wmWindow *WM_window_open_temp(bContext *C, const char *title, int space_type, bool dialog);
404
405void WM_window_dpi_set_userdef(const wmWindow *win);
411float WM_window_dpi_get_scale(const wmWindow *win);
412
417void WM_window_title(wmWindowManager *wm, wmWindow *win, const char *title = nullptr);
418
419bool WM_stereo3d_enabled(wmWindow *win, bool skip_stereo3d_check);
420
421/* Window Decoration Styles. */
422
435
436
454void WM_window_decoration_style_apply(const wmWindow *win, const bScreen *screen = nullptr);
455
456/* `wm_files.cc`. */
457
458void WM_file_autoexec_init(const char *filepath);
466 const char *filepath,
467 const bool use_scripts_autoexec_check,
468 ReportList *reports);
471 const bool use_scripts_autoexec_check,
472 ReportList *reports);
474
480 Scene *scene,
481 ViewLayer *view_layer,
482 View3D *v3d,
483 const char *filepath,
484 short id_code,
485 const char *id_name,
486 int flag);
492 Scene *scene,
493 ViewLayer *view_layer,
494 View3D *v3d,
495 const char *filepath,
496 short id_code,
497 const char *id_name,
498 int flag);
499void WM_lib_reload(Library *lib, bContext *C, ReportList *reports);
500
501/* Mouse cursors. */
502
503void WM_cursor_set(wmWindow *win, int curs);
504bool WM_cursor_set_from_tool(wmWindow *win, const ScrArea *area, const ARegion *region);
514bool WM_cursor_modal_is_set_ok(const wmWindow *win);
515void WM_cursor_modal_set(wmWindow *win, int val);
520void WM_cursor_wait(bool val);
533 const rcti *wrap_region,
534 bool hide);
535void WM_cursor_grab_disable(wmWindow *win, const int mouse_ungrab_xy[2]);
539void WM_cursor_time(wmWindow *win, int nr);
540
544void WM_cursor_progress(wmWindow *win, float progress_factor);
545
547 short region_type,
548 bool (*poll)(bContext *C),
550 void *customdata);
551
553void WM_paint_cursor_remove_by_type(wmWindowManager *wm, void *draw_fn, void (*free)(void *));
555
562void WM_cursor_warp(wmWindow *win, int x, int y);
563
567#define WM_CURSOR_DEFAULT_LOGICAL_SIZE 24
568
574
575/* Handlers. */
576
582
583 /* Internal. */
586};
588
589using EventHandlerPoll = bool (*)(const wmWindow *win,
590 const ScrArea *area,
591 const ARegion *region,
592 const wmEvent *event);
595 wmKeyMap *keymap,
596 EventHandlerPoll poll);
597
604 const ScrArea *area,
605 const ARegion *region,
606 const wmEvent *event);
613 const ScrArea *area,
614 const ARegion *region,
615 const wmEvent *event);
616
624 const ScrArea *area,
625 const ARegion *region,
626 const wmEvent *event);
627
633 wmKeyMap *keymap,
634 int priority);
635
640
642 wmWindow *win,
643 wmEventHandler_Keymap *handler,
644 wmEventHandler_KeymapResult *km_result);
645
647 wmWindow *win,
648 wmEventHandler_Keymap *handler,
649 wmEventHandler_KeymapResult *km_result);
651 wmWindow *win,
652 wmEventHandler_Keymap *handler,
653 wmEventHandler_KeymapResult *km_result);
654
656 ListBase *handlers, wmEventHandler_KeymapDynamicFn keymap_fn, void *user_data);
657
658void WM_event_remove_keymap_handler(ListBase *handlers, wmKeyMap *keymap);
659
661 void(keymap_tag)(wmKeyMap *keymap,
662 wmKeyMapItem *kmi,
663 void *user_data),
664 void *user_data);
666 wmWindow *win,
667 wmEventHandler_Keymap *handler,
668 wmEventHandler_KeymapResult *km_result);
669
671
673 bContext *C, wmWindowManager *wm, wmWindow *win, ListBase *handlers, const wmEvent *event);
674
675bool WM_event_match(const wmEvent *winevent, const wmKeyMapItem *kmi);
676
677using wmUIHandlerFunc = int (*)(bContext *C, const wmEvent *event, void *userdata);
678using wmUIHandlerRemoveFunc = void (*)(bContext *C, void *userdata);
679
681 ListBase *handlers,
682 wmUIHandlerFunc handle_fn,
683 wmUIHandlerRemoveFunc remove_fn,
684 void *user_data,
686
691
697 wmUIHandlerFunc handle_fn,
698 wmUIHandlerRemoveFunc remove_fn,
699 void *user_data,
700 bool postpone);
701void WM_event_remove_handlers_by_area(ListBase *handlers, const ScrArea *area);
703 ListBase *handlers,
704 wmUIHandlerFunc handle_fn,
705 wmUIHandlerRemoveFunc remove_fn);
706
711 ScrArea *area,
712 ARegion *region,
713 wmOperator *op) ATTR_NONNULL(1, 4);
715void WM_event_remove_model_handler(ListBase *handlers, const wmOperator *op, bool postpone)
716 ATTR_NONNULL(1, 2);
717
718void WM_event_remove_modal_handler_all(const wmOperator *op, bool postpone) ATTR_NONNULL(1);
719
725 const ScrArea *old_area,
726 ScrArea *new_area);
732 const ARegion *old_region,
733 ARegion *new_region);
735 const ARegion *old_region,
736 ARegion *new_region);
737
742
744
745/* Mouse. */
747
748#ifdef WITH_INPUT_NDOF
749/* 3D mouse. */
750void WM_ndof_deadzone_set(float deadzone);
751#endif
752/* Notifiers. */
754 const wmWindow *win,
755 unsigned int type,
756 void *reference);
757void WM_event_add_notifier(const bContext *C, unsigned int type, void *reference);
758void WM_main_add_notifier(unsigned int type, void *reference);
762void WM_main_remove_notifier_reference(const void *reference);
764
765/* Reports. */
766
775void WM_report_banners_cancel(Main *bmain);
791
805void WM_global_report(eReportType type, const char *message);
814void WM_global_reportf(eReportType type, const char *format, ...) ATTR_PRINTF_FORMAT(2, 3);
815
816wmEvent *WM_event_add(wmWindow *win, const wmEvent *event_to_add) ATTR_NONNULL(1, 2);
817
819
824 wmWindow *win,
825 wmEventType event_type,
826 double time_step);
828 wmWindow *win,
829 unsigned int type,
830 double time_step);
831
833
843void WM_event_timer_sleep(wmWindowManager *wm, wmWindow *win, wmTimer *timer, bool do_sleep);
844
845/* Operator API, default callbacks. */
846
869 wmOperator *op,
870 blender::wm::OpCallContext opcontext);
875void WM_menu_name_call(bContext *C, const char *menu_name, blender::wm::OpCallContext context);
876
878
884
889 wmOperator *op,
890 const char *title = nullptr,
891 const char *message = nullptr,
892 const char *confirm_text = nullptr,
893 int icon = 0, /* ALERT_ICON_WARNING. */
894 bool cancel_default = false);
895
912 wmOperator *op,
913 const wmEvent *event);
914
916 bContext *C,
917 wmOperator *op,
918 const wmEvent *event,
919 std::optional<std::string> title = std::nullopt,
920 std::optional<std::string> confirm_text = std::nullopt,
921 bool cancel_default = false,
922 std::optional<std::string> message = std::nullopt);
923
931
933 bContext *C,
934 wmOperator *op,
935 int width,
936 std::optional<std::string> title = std::nullopt,
937 std::optional<std::string> confirm_text = std::nullopt,
938 bool cancel_default = false,
939 std::optional<std::string> message = std::nullopt);
940
943
948 wmOperator *op,
949 const char *title,
950 int icon,
951 const char *message,
952 blender::wm::OpCallContext opcontext);
954
955/* Operator API. */
956
973
975bool WM_operator_poll_context(bContext *C, wmOperatorType *ot, blender::wm::OpCallContext context);
976
990
1019bool WM_operator_is_repeat(const bContext *C, const wmOperator *op);
1020
1021bool WM_operator_name_poll(bContext *C, const char *opstring);
1033 blender::wm::OpCallContext context,
1034 PointerRNA *properties,
1035 const wmEvent *event);
1038 const char *opstring,
1039 blender::wm::OpCallContext context,
1040 PointerRNA *properties,
1041 const wmEvent *event);
1043 const char *opstring,
1044 blender::wm::OpCallContext context,
1045 IDProperty *properties,
1046 const wmEvent *event);
1057 blender::wm::OpCallContext context,
1058 PointerRNA *properties,
1059 ReportList *reports,
1060 bool is_undo);
1061
1064 blender::wm::OpCallContext opcontext,
1065 PointerRNA *properties,
1066 const wmEvent *event,
1067 blender::StringRef drawstr);
1068
1072void WM_operator_properties_alloc(PointerRNA **ptr, IDProperty **properties, const char *opstring);
1073
1077void WM_operator_properties_sanitize(PointerRNA *ptr, bool no_context);
1078
1087bool WM_operator_properties_default(PointerRNA *ptr, bool do_update);
1092void WM_operator_properties_create(PointerRNA *ptr, const char *opstring);
1096
1101bool WM_operator_check_ui_enabled(const bContext *C, const char *idname);
1102
1110ID *WM_operator_drop_load_path(bContext *C, wmOperator *op, short idcode);
1111
1114
1115/* `wm_operator_props.cc` */
1116
1118
1130
1131
1136
1141 int filter,
1142 short type,
1143 eFileSel_Action action,
1145 short display,
1146 short sort);
1147
1163 PointerRNA *ptr,
1164 enum ID_Type type);
1180void WM_operator_properties_id_lookup(wmOperatorType *ot, const bool add_name_prop);
1181
1194void WM_operator_properties_gesture_box_ex(wmOperatorType *ot, bool deselect, bool extend);
1219void WM_operator_properties_select_action(wmOperatorType *ot, int default_action, bool hide_gui);
1224 int default_action,
1225 bool hide_gui);
1264
1271
1274void WM_operator_properties_checker_interval(wmOperatorType *ot, bool nth_can_disable);
1276 CheckerIntervalParams *op_params);
1278 int depth);
1279
1292 wmOperator *op,
1293 bool all_args,
1294 bool macro_args,
1296 PointerRNA *opptr);
1297std::string WM_operator_pystring(bContext *C, wmOperator *op, bool all_args, bool macro_args);
1298
1299std::string WM_operator_pystring_abbreviate(std::string str, int str_len_max);
1300
1301std::optional<std::string> WM_prop_pystring_assign(bContext *C,
1302 PointerRNA *ptr,
1303 PropertyRNA *prop,
1304 int index);
1309size_t WM_operator_bl_idname(char *dst, const char *src) ATTR_NONNULL(1, 2);
1314size_t WM_operator_py_idname(char *dst, const char *src) ATTR_NONNULL(1, 2);
1320 const char *classname,
1321 const char *idname);
1325bool WM_operator_bl_idname_is_valid(const char *idname);
1326
1330std::optional<std::string> WM_context_path_resolve_property_full(const bContext *C,
1331 const PointerRNA *ptr,
1332 PropertyRNA *prop,
1333 int index);
1334std::optional<std::string> WM_context_path_resolve_full(bContext *C, const PointerRNA *ptr);
1335
1336/* `wm_operator_type.cc` */
1337
1338wmOperatorType *WM_operatortype_find(const char *idname, bool quiet);
1340void WM_operatortype_append(void (*opfunc)(wmOperatorType *ot));
1341void WM_operatortype_append_ptr(void (*opfunc)(wmOperatorType *ot, void *userdata),
1342 void *userdata);
1343void WM_operatortype_append_macro_ptr(void (*opfunc)(wmOperatorType *ot, void *userdata),
1344 void *userdata);
1349bool WM_operatortype_remove(const char *idname);
1354
1356 const bContext *C,
1357 PointerRNA *ptr,
1358 PropertyRNA *prop,
1359 const char *edit_text,
1361
1384
1385#define WM_operatortype_prop_tag(property, tags) \
1386 { \
1387 CHECK_TYPE(tags, eOperatorPropTags); \
1388 RNA_def_property_tags(prop, tags); \
1389 } \
1390 (void)0
1391
1396 const char *name,
1397 const char *description,
1398 int flag);
1400
1401std::string WM_operatortype_name(wmOperatorType *ot, PointerRNA *properties);
1408 PointerRNA *properties);
1409
1412
1413/* `wm_operator_utils.cc` */
1414
1420
1421/* `wm_uilist_type.cc` */
1422
1426void WM_uilisttype_init();
1428bool WM_uilisttype_add(uiListType *ult);
1429void WM_uilisttype_remove_ptr(Main *bmain, uiListType *ult);
1430void WM_uilisttype_free();
1431
1443 const char *list_id,
1444 char r_full_list_id[]);
1450const char *WM_uilisttype_list_id_get(const uiListType *ult, uiList *list);
1451
1452/* `wm_menu_type.cc` */
1453
1457void WM_menutype_init();
1458MenuType *WM_menutype_find(blender::StringRef idname, bool quiet);
1460bool WM_menutype_add(MenuType *mt);
1462void WM_menutype_free();
1464
1466 const bContext *C,
1467 PointerRNA *ptr,
1468 PropertyRNA *prop,
1469 const char *edit_text,
1471
1472/* `wm_panel_type.cc` */
1473
1477void WM_paneltype_init();
1478void WM_paneltype_clear();
1480bool WM_paneltype_add(PanelType *pt);
1482
1484 const bContext *C,
1485 PointerRNA *ptr,
1486 PropertyRNA *prop,
1487 const char *edit_text,
1489
1490/* `wm_gesture_ops.cc` */
1491
1511
1518 wmOperator *op,
1519 const wmEvent *event);
1534 wmOperator *op,
1535 const wmEvent *event);
1537
1538/* Gesture manager API. */
1539
1543wmGesture *WM_gesture_new(wmWindow *window, const ARegion *region, const wmEvent *event, int type);
1544void WM_gesture_end(wmWindow *win, wmGesture *gesture);
1545void WM_gestures_remove(wmWindow *win);
1547bool WM_gesture_is_modal_first(const wmGesture *gesture);
1548
1549/* File-selecting support. */
1550
1558void WM_event_fileselect_event(wmWindowManager *wm, void *ophandle, int eventval);
1559
1560/* Event consecutive data. */
1561
1563void *WM_event_consecutive_data_get(wmWindow *win, const char *id);
1565void WM_event_consecutive_data_set(wmWindow *win, const char *id, void *custom_data);
1568
1575
1599 const wmEvent *event);
1600
1601/* Drag and drop. */
1602
1608 bContext *C, int icon, eWM_DragDataType type, void *poin, unsigned int flags);
1617 bContext *C, int icon, eWM_DragDataType type, void *poin, unsigned int flags);
1622void WM_event_drag_image(wmDrag *drag, const ImBuf *imb, float scale);
1628void WM_event_drag_preview_icon(wmDrag *drag, int icon_id);
1629void WM_drag_free(wmDrag *drag);
1630void WM_drag_data_free(eWM_DragDataType dragtype, void *poin);
1631void WM_drag_free_list(ListBase *lb);
1633 const char *idname,
1634 bool (*poll)(bContext *C, wmDrag *drag, const wmEvent *event),
1635 void (*copy)(bContext *C, wmDrag *drag, wmDropBox *drop),
1636 void (*cancel)(Main *bmain, wmDrag *drag, wmDropBox *drop),
1637 WMDropboxTooltipFunc tooltip);
1642
1643void WM_drag_draw_item_name_fn(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2]);
1644void WM_drag_draw_default_fn(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2]);
1648ListBase *WM_dropboxmap_find(const char *idname, int spaceid, int regionid);
1649
1650/* ID drag and drop. */
1651
1655ID *WM_drag_asset_id_import(const bContext *C, wmDragAsset *asset_drag, int flag_extra);
1658void WM_drag_add_local_ID(wmDrag *drag, ID *id, ID *from_parent);
1659ID *WM_drag_get_local_ID(const wmDrag *drag, short idcode);
1660ID *WM_drag_get_local_ID_from_event(const wmEvent *event, short idcode);
1664bool WM_drag_is_ID_type(const wmDrag *drag, int idcode);
1665
1670 const AssetImportSettings &import_settings);
1671
1672wmDragAsset *WM_drag_get_asset_data(const wmDrag *drag, int idcode);
1673AssetMetaData *WM_drag_get_asset_meta_data(const wmDrag *drag, int idcode);
1681ID *WM_drag_get_local_ID_or_import_from_asset(const bContext *C, const wmDrag *drag, int idcode);
1682
1691void WM_drag_free_imported_drag_ID(Main *bmain, wmDrag *drag, wmDropBox *drop);
1692
1694
1700
1701const ListBase *WM_drag_asset_list_get(const wmDrag *drag);
1702
1703const char *WM_drag_get_item_name(wmDrag *drag);
1704
1705/* Paths drag and drop. */
1714const char *WM_drag_get_single_path(const wmDrag *drag);
1722const char *WM_drag_get_single_path(const wmDrag *drag, int file_type);
1730bool WM_drag_has_path_file_type(const wmDrag *drag, int file_type);
1736int /*eFileSel_File_Types*/ WM_drag_get_path_file_type(const wmDrag *drag);
1737
1738const std::string &WM_drag_get_string(const wmDrag *drag);
1739std::string WM_drag_get_string_firstline(const wmDrag *drag);
1740
1741/* Set OpenGL viewport and scissor. */
1742void wmViewport(const rcti *winrct);
1743void wmPartialViewport(rcti *drawrct, const rcti *winrct, const rcti *partialrct);
1744void wmWindowViewport(const wmWindow *win);
1745void wmWindowViewport_ex(const wmWindow *win, float offset);
1746
1747/* OpenGL utilities with safety check. */
1748void wmOrtho2(float x1, float x2, float y1, float y2);
1749/* Use for conventions (avoid hard-coded offsets all over). */
1750
1754void wmOrtho2_region_pixelspace(const ARegion *region);
1755void wmOrtho2_pixelspace(float x, float y);
1756void wmGetProjectionMatrix(float mat[4][4], const rcti *winrct);
1757
1758/* Threaded Jobs Manager. */
1767};
1769
1815
1823 wmWindow *win,
1824 const void *owner,
1825 const char *name,
1827 eWM_JobType job_type);
1828
1832bool WM_jobs_test(const wmWindowManager *wm, const void *owner, int job_type);
1833float WM_jobs_progress(const wmWindowManager *wm, const void *owner);
1834const char *WM_jobs_name(const wmWindowManager *wm, const void *owner);
1838double WM_jobs_starttime(const wmWindowManager *wm, const void *owner);
1839void *WM_jobs_customdata_from_type(wmWindowManager *wm, const void *owner, int job_type);
1840
1841bool WM_jobs_is_running(const wmJob *wm_job);
1842bool WM_jobs_is_stopped(const wmWindowManager *wm, const void *owner);
1843void *WM_jobs_customdata_get(wmJob *wm_job);
1844void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void (*free)(void *));
1845void WM_jobs_timer(wmJob *wm_job, double time_step, unsigned int note, unsigned int endnote);
1846void WM_jobs_delay_start(wmJob *wm_job, double delay_time);
1847
1848using wm_jobs_start_callback = void (*)(void *custom_data, wmJobWorkerStatus *worker_status);
1849void WM_jobs_callbacks(wmJob *wm_job,
1850 wm_jobs_start_callback startjob,
1851 void (*initjob)(void *),
1852 void (*update)(void *),
1853 void (*endjob)(void *));
1854
1855void WM_jobs_callbacks_ex(wmJob *wm_job,
1856 wm_jobs_start_callback startjob,
1857 void (*initjob)(void *),
1858 void (*update)(void *),
1859 void (*endjob)(void *),
1860 void (*completed)(void *),
1861 void (*canceled)(void *));
1862
1877void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job);
1884void WM_jobs_stop_type(wmWindowManager *wm, const void *owner, eWM_JobType job_type);
1891void WM_jobs_stop_all_from_owner(wmWindowManager *wm, const void *owner) ATTR_NONNULL();
1899void WM_jobs_kill_all_except(wmWindowManager *wm, const void *owner);
1905void WM_jobs_kill_type(wmWindowManager *wm, const void *owner, int job_type);
1912void WM_jobs_kill_all_from_owner(wmWindowManager *wm, const void *owner) ATTR_NONNULL();
1913
1914bool WM_jobs_has_running(const wmWindowManager *wm);
1915bool WM_jobs_has_running_type(const wmWindowManager *wm, int job_type);
1916
1919
1920/* Clipboard. */
1921
1927char *WM_clipboard_text_get(bool selection, bool ensure_utf8, int *r_len);
1931char *WM_clipboard_text_get_firstline(bool selection, bool ensure_utf8, int *r_len);
1932
1933void WM_clipboard_text_set(const char *buf, bool selection);
1934
1939
1945
1952
1953/* Progress. */
1954
1955void WM_progress_set(wmWindow *win, float progress);
1956void WM_progress_clear(wmWindow *win);
1957
1958/* Draw (for screenshot). */
1959
1960void *WM_draw_cb_activate(wmWindow *win,
1961 void (*draw)(const wmWindow *win, void *customdata),
1962 void *customdata);
1963void WM_draw_cb_exit(wmWindow *win, void *handle);
1975
1976void WM_draw_region_viewport_ensure(Scene *scene, ARegion *region, short space_type);
1979
1980/* Region drawing. */
1981
1982void WM_draw_region_free(ARegion *region);
1985
1986int WM_main_playanim(int argc, const char **argv);
1987
1992bool write_crash_blend();
1993
1996void WM_autosave_write(wmWindowManager *wm, Main *bmain);
1997
2003void WM_locked_interface_set_with_flags(wmWindowManager *wm, short lock_flags);
2004
2006
2010wmEvent *WM_event_add_simulate(wmWindow *win, const wmEvent *event_to_add);
2011
2012const char *WM_window_cursor_keymap_status_get(const wmWindow *win,
2013 int button_index,
2014 int type_index);
2016
2024
2025/* `wm_event_query.cc` */
2026
2030void WM_event_print(const wmEvent *event);
2031
2035bool WM_event_is_modal_drag_exit(const wmEvent *event,
2036 short init_event_type,
2037 short init_event_val);
2038bool WM_event_is_mouse_drag(const wmEvent *event);
2039bool WM_event_is_mouse_drag_or_press(const wmEvent *event);
2040int WM_event_drag_direction(const wmEvent *event);
2042
2058
2069bool WM_event_consecutive_gesture_test_break(const wmWindow *win, const wmEvent *event);
2070
2071int WM_event_drag_threshold(const wmEvent *event);
2072bool WM_event_drag_test(const wmEvent *event, const int prev_xy[2]);
2073bool WM_event_drag_test_with_delta(const wmEvent *event, const int drag_delta[2]);
2074void WM_event_drag_start_mval(const wmEvent *event, const ARegion *region, int r_mval[2]);
2075void WM_event_drag_start_mval_fl(const wmEvent *event, const ARegion *region, float r_mval[2]);
2076void WM_event_drag_start_xy(const wmEvent *event, int r_xy[2]);
2077
2081int WM_userdef_event_map(int kmitype);
2088
2089#ifdef WITH_INPUT_NDOF
2090blender::float3 WM_event_ndof_translation_get_for_navigation(const wmNDOFMotionData &ndof);
2091blender::float3 WM_event_ndof_rotation_get_for_navigation(const wmNDOFMotionData &ndof);
2092float WM_event_ndof_rotation_get_axis_angle_for_navigation(const wmNDOFMotionData &ndof,
2093 float axis[3]);
2094
2095blender::float3 WM_event_ndof_translation_get(const wmNDOFMotionData &ndof);
2096blender::float3 WM_event_ndof_rotation_get(const wmNDOFMotionData &ndof);
2097float WM_event_ndof_rotation_get_axis_angle(const wmNDOFMotionData &ndof, float axis[3]);
2098
2099bool WM_event_ndof_translation_has_pan(const wmNDOFMotionData &ndof);
2100bool WM_event_ndof_translation_has_zoom(const wmNDOFMotionData &ndof);
2101
2102#endif /* WITH_INPUT_NDOF */
2103
2104#ifdef WITH_XR_OPENXR
2105bool WM_event_is_xr(const wmEvent *event);
2106#endif
2107
2112float WM_event_tablet_data(const wmEvent *event, bool *r_pen_flip, float r_tilt[2]);
2113bool WM_event_is_tablet(const wmEvent *event);
2114
2115int WM_event_absolute_delta_x(const wmEvent *event);
2116int WM_event_absolute_delta_y(const wmEvent *event);
2117
2118#ifdef WITH_INPUT_IME
2119bool WM_event_is_ime_switch(const wmEvent *event);
2120#endif
2121
2122/* `wm_tooltip.cc` */
2123
2125 ARegion *region,
2126 int *pass,
2127 double *r_pass_delay,
2128 bool *r_exit_on_event);
2129
2131 bContext *C, wmWindow *win, ScrArea *area, ARegion *region, wmTooltipInitFn init);
2133 wmWindow *win,
2134 ScrArea *area,
2135 ARegion *region,
2137 double delay);
2139 bContext *C, wmWindow *win, ScrArea *area, ARegion *region, wmTooltipInitFn init);
2141void WM_tooltip_clear(bContext *C, wmWindow *win);
2142void WM_tooltip_init(bContext *C, wmWindow *win);
2144double WM_tooltip_time_closed();
2145
2146/* `wm_utils.cc` */
2147
2150
2152
2153bool WM_region_use_viewport(ScrArea *area, ARegion *region);
2154
2155/* `wm_platform.cc` */
2156
2160bool WM_platform_associate_set(bool do_register, bool all_users, char **r_error_msg);
2161
2162#ifdef WITH_XR_OPENXR
2163/* `wm_xr_session.cc` */
2164
2169bool WM_xr_session_exists(const wmXrData *xr);
2173bool WM_xr_session_is_ready(const wmXrData *xr);
2177bool WM_xr_session_state_viewer_pose_location_get(const wmXrData *xr, float r_location[3]);
2178bool WM_xr_session_state_viewer_pose_rotation_get(const wmXrData *xr, float r_rotation[4]);
2180 float r_viewmat[4][4],
2181 float *r_focal_len);
2183 unsigned int subaction_idx,
2184 float r_location[3]);
2186 unsigned int subaction_idx,
2187 float r_rotation[4]);
2189 unsigned int subaction_idx,
2190 float r_location[3]);
2192 unsigned int subaction_idx,
2193 float r_rotation[4]);
2194bool WM_xr_session_state_nav_location_get(const wmXrData *xr, float r_location[3]);
2195void WM_xr_session_state_nav_location_set(wmXrData *xr, const float location[3]);
2196bool WM_xr_session_state_nav_rotation_get(const wmXrData *xr, float r_rotation[4]);
2197void WM_xr_session_state_nav_rotation_set(wmXrData *xr, const float rotation[4]);
2198bool WM_xr_session_state_nav_scale_get(const wmXrData *xr, float *r_scale);
2199void WM_xr_session_state_nav_scale_set(wmXrData *xr, float scale);
2204
2206
2207/* `wm_xr_actions.cc`. */
2208
2209/* XR action functions to be called pre-XR session start.
2210 * NOTE: The "destroy" functions can also be called post-session start. */
2211
2212bool WM_xr_action_set_create(wmXrData *xr, const char *action_set_name);
2213void WM_xr_action_set_destroy(wmXrData *xr, const char *action_set_name);
2215 const char *action_set_name,
2216 const char *action_name,
2217 eXrActionType type,
2218 const ListBase *user_paths,
2220 IDProperty *op_properties,
2221 const char *haptic_name,
2222 const int64_t *haptic_duration,
2223 const float *haptic_frequency,
2224 const float *haptic_amplitude,
2225 eXrOpFlag op_flag,
2226 eXrActionFlag action_flag,
2227 eXrHapticFlag haptic_flag);
2228void WM_xr_action_destroy(wmXrData *xr, const char *action_set_name, const char *action_name);
2230 const char *action_set_name,
2231 const char *action_name,
2232 const char *profile_path,
2233 const ListBase *user_paths,
2234 const ListBase *component_paths,
2235 const float *float_thresholds,
2236 const eXrAxisFlag *axis_flags,
2237 const wmXrPose *poses);
2239 const char *action_set_name,
2240 const char *action_name,
2241 const char *profile_path);
2242
2246bool WM_xr_active_action_set_set(wmXrData *xr, const char *action_set_name, bool delayed);
2247
2249 const char *action_set_name,
2250 const char *grip_action_name,
2251 const char *aim_action_name);
2252
2256bool WM_xr_action_state_get(const wmXrData *xr,
2257 const char *action_set_name,
2258 const char *action_name,
2259 const char *subaction_path,
2260 wmXrActionState *r_state);
2262 const char *action_set_name,
2263 const char *action_name,
2264 const char *subaction_path,
2265 const int64_t *duration,
2266 const float *frequency,
2267 const float *amplitude);
2269 const char *action_set_name,
2270 const char *action_name,
2271 const char *subaction_path);
2272
2273/* `wm_xr_actionmap.cc` */
2274
2276 const char *name,
2277 bool replace_existing);
2283bool WM_xr_actionmap_remove(wmXrRuntimeData *runtime, XrActionMap *actionmap);
2285void WM_xr_actionmap_clear(XrActionMap *actionmap);
2289void WM_xr_actionmap_active_index_set(wmXrRuntimeData *runtime, short idx);
2291void WM_xr_actionmap_selected_index_set(wmXrRuntimeData *runtime, short idx);
2292
2294 const char *name,
2295 bool replace_existing);
2308
2310 const char *name,
2311 bool replace_existing);
2317 XrActionMapBinding *amb_src);
2320#endif /* WITH_XR_OPENXR */
eReportType
Definition BKE_report.hh:33
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_PRINTF_FORMAT(format_param, dots_param)
#define ATTR_NORETURN
#define ATTR_NONNULL(...)
void BLI_kdtree_nd_ free(KDTree *tree)
unsigned int uint
#define ENUM_OPERATORS(_type, _max)
ID_Type
eXrOpFlag
eXrAxisFlag
eXrActionType
eXrActionFlag
eXrHapticFlag
#define C
Definition RandGen.cpp:29
float WM_event_tablet_data(const wmEvent *event, bool *r_pen_flip, float r_tilt[2])
void WM_autosave_write(wmWindowManager *wm, Main *bmain)
Definition wm_files.cc:2351
AssetMetaData * WM_drag_get_asset_meta_data(const wmDrag *drag, int idcode)
void WM_report_banner_show(wmWindowManager *wm, wmWindow *win) ATTR_NONNULL(1)
bool WM_window_modal_keymap_status_draw(bContext *C, wmWindow *win, uiLayout *layout)
void WM_draw_region_viewport_unbind(ARegion *region)
Definition wm_draw.cc:1731
wmDragAsset * WM_drag_create_asset_data(const blender::asset_system::AssetRepresentation *asset, const AssetImportSettings &import_settings)
wmEventHandler_Dropbox * WM_event_add_dropbox_handler(ListBase *handlers, ListBase *dropboxes)
blender::int2 WM_window_native_pixel_size(const wmWindow *win)
void WM_operatortype_append_macro_ptr(void(*opfunc)(wmOperatorType *ot, void *userdata), void *userdata)
void WM_file_autosave_init(wmWindowManager *wm)
Definition wm_files.cc:2394
bool WM_autosave_is_scheduled(wmWindowManager *wm)
Definition wm_files.cc:2346
bool WM_file_read(bContext *C, const char *filepath, const bool use_scripts_autoexec_check, ReportList *reports)
Definition wm_files.cc:1054
eFileSel_Flag
Definition WM_api.hh:1120
@ WM_FILESEL_FILES
Definition WM_api.hh:1125
@ WM_FILESEL_DIRECTORY
Definition WM_api.hh:1122
@ WM_FILESEL_RELPATH
Definition WM_api.hh:1121
@ WM_FILESEL_SHOW_PROPS
Definition WM_api.hh:1127
@ WM_FILESEL_FILEPATH
Definition WM_api.hh:1124
@ WM_FILESEL_FILENAME
Definition WM_api.hh:1123
bool WM_uilisttype_add(uiListType *ult)
uint8_t * WM_window_pixels_read_from_frontbuffer(const wmWindowManager *wm, const wmWindow *win, int r_size[2])
Definition wm_draw.cc:1325
void WM_script_tag_reload()
eWM_WindowDecorationStyleFlag WM_window_decoration_style_flags_get(const wmWindow *win)
Definition wm_window.cc:718
wmDropBox * WM_dropbox_add(ListBase *lb, const char *idname, bool(*poll)(bContext *C, wmDrag *drag, const wmEvent *event), void(*copy)(bContext *C, wmDrag *drag, wmDropBox *drop), void(*cancel)(Main *bmain, wmDrag *drag, wmDropBox *drop), WMDropboxTooltipFunc tooltip)
void WM_operatortype_append_ptr(void(*opfunc)(wmOperatorType *ot, void *userdata), void *userdata)
void WM_window_title(wmWindowManager *wm, wmWindow *win, const char *title=nullptr)
Definition wm_window.cc:541
void WM_jobs_timer(wmJob *wm_job, double time_step, unsigned int note, unsigned int endnote)
Definition wm_jobs.cc:376
std::optional< std::string > WM_context_path_resolve_property_full(const bContext *C, const PointerRNA *ptr, PropertyRNA *prop, int index)
bool WM_stereo3d_enabled(wmWindow *win, bool skip_stereo3d_check)
Definition wm_stereo.cc:140
bool WM_jobs_has_running_type(const wmWindowManager *wm, int job_type)
Definition wm_jobs.cc:782
void WM_init_splash(bContext *C)
void WM_lib_reload(Library *lib, bContext *C, ReportList *reports)
void WM_operator_properties_border_to_rcti(wmOperator *op, rcti *r_rect)
void WM_menutype_free()
void WM_gesture_box_cancel(bContext *C, wmOperator *op)
void WM_clipboard_text_set(const char *buf, bool selection)
size_t size_t bool WM_operator_py_idname_ok_or_report(ReportList *reports, const char *classname, const char *idname)
bool WM_paneltype_add(PanelType *pt)
int WM_event_drag_direction(const wmEvent *event)
eWindowAlignment
Definition WM_api.hh:373
@ WIN_ALIGN_LOCATION_CENTER
Definition WM_api.hh:375
@ WIN_ALIGN_ABSOLUTE
Definition WM_api.hh:374
@ WIN_ALIGN_PARENT_CENTER
Definition WM_api.hh:376
void WM_event_remove_keymap_handler(ListBase *handlers, wmKeyMap *keymap)
void WM_operator_properties_filesel(wmOperatorType *ot, int filter, short type, eFileSel_Action action, eFileSel_Flag flag, short display, short sort)
void WM_operator_properties_checker_interval_from_op(wmOperator *op, CheckerIntervalParams *op_params)
void WM_cursor_modal_set(wmWindow *win, int val)
wmEventHandler_Op wmEventHandler_Op void void WM_event_remove_modal_handler_all(const wmOperator *op, bool postpone) ATTR_NONNULL(1)
int WM_event_absolute_delta_y(const wmEvent *event)
void WM_paint_cursor_tag_redraw(wmWindow *win, ARegion *region)
Definition wm_draw.cc:1606
void WM_event_print(const wmEvent *event)
ImBuf * WM_clipboard_image_get()
bool WM_jobs_is_running(const wmJob *wm_job)
Definition wm_jobs.cc:341
void WM_locked_interface_set(wmWindowManager *wm, bool lock)
void WM_init_input_devices()
void WM_cursor_grab_enable(wmWindow *win, eWM_CursorWrapAxis wrap, const rcti *wrap_region, bool hide)
int WM_operator_properties_select_random_seed_increment_get(wmOperator *op)
void WM_jobs_stop_type(wmWindowManager *wm, const void *owner, eWM_JobType job_type)
Definition wm_jobs.cc:647
void WM_window_status_area_tag_redraw(wmWindow *win)
void WM_init_state_maximized_set()
wmEvent * WM_event_add_simulate(wmWindow *win, const wmEvent *event_to_add)
void WM_operator_properties_gesture_box(wmOperatorType *ot)
void WM_exit(bContext *C, int exit_code) ATTR_NORETURN
size_t WM_operator_bl_idname(char *dst, const char *src) ATTR_NONNULL(1
bool WM_window_is_main_top_level(const wmWindow *win)
void WM_operatortype_props_advanced_begin(wmOperatorType *ot)
char * WM_clipboard_text_get(bool selection, bool ensure_utf8, int *r_len)
void WM_main_add_notifier(unsigned int type, void *reference)
blender::Span< wmOperatorType * > WM_operatortypes_registered_get()
void WM_event_add_fileselect(bContext *C, wmOperator *op)
void * WM_event_consecutive_data_get(wmWindow *win, const char *id)
uint8_t * WM_window_pixels_read(bContext *C, wmWindow *win, int r_size[2])
Definition wm_draw.cc:1484
void WM_cursor_set(wmWindow *win, int curs)
char WM_event_utf8_to_ascii(const wmEvent *event) ATTR_NONNULL(1) ATTR_WARN_UNUSED_RESULT
void WM_main_remap_editor_id_reference(const blender::bke::id::IDRemapper &mappings)
void WM_uilisttype_to_full_list_id(const uiListType *ult, const char *list_id, char r_full_list_id[])
char * WM_clipboard_text_get_firstline(bool selection, bool ensure_utf8, int *r_len)
wmDrag * WM_drag_data_create(bContext *C, int icon, eWM_DragDataType type, void *poin, unsigned int flags)
void WM_reinit_gizmomap_all(Main *bmain)
wmOperatorStatus WM_gesture_polyline_modal(bContext *C, wmOperator *op, const wmEvent *event)
void WM_tooltip_timer_clear(bContext *C, wmWindow *win)
Definition wm_tooltip.cc:70
bool WM_drag_asset_will_import_linked(const wmDrag *drag)
void WM_report_banners_cancel(Main *bmain)
void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job)
Definition wm_jobs.cc:479
void WM_tooltip_clear(bContext *C, wmWindow *win)
Definition wm_tooltip.cc:82
void WM_window_pixels_read_sample_from_frontbuffer(const wmWindowManager *wm, const wmWindow *win, const int pos[2], float r_col[3])
Definition wm_draw.cc:1371
void WM_file_tag_modified()
Definition wm_files.cc:177
int WM_main_playanim(int argc, const char **argv)
void WM_locked_interface_set_with_flags(wmWindowManager *wm, short lock_flags)
eWM_JobType
Definition WM_api.hh:1773
@ WM_JOB_TYPE_DPAINT_BAKE
Definition WM_api.hh:1795
@ WM_JOB_TYPE_SEQ_BUILD_PROXY
Definition WM_api.hh:1792
@ WM_JOB_TYPE_SEQ_DRAG_DROP_PREVIEW
Definition WM_api.hh:1808
@ WM_JOB_TYPE_UV_PACK
Definition WM_api.hh:1811
@ WM_JOB_TYPE_CALCULATE_SIMULATION_NODES
Definition WM_api.hh:1809
@ WM_JOB_TYPE_COMPOSITE
Definition WM_api.hh:1777
@ WM_JOB_TYPE_OBJECT_BAKE
Definition WM_api.hh:1785
@ WM_JOB_TYPE_LIGHT_BAKE
Definition WM_api.hh:1802
@ WM_JOB_TYPE_QUADRIFLOW_REMESH
Definition WM_api.hh:1804
@ WM_JOB_TYPE_RENDER_PREVIEW
Definition WM_api.hh:1779
@ WM_JOB_TYPE_POINTCACHE
Definition WM_api.hh:1794
@ WM_JOB_TYPE_FSMENU_BOOKMARK_VALIDATE
Definition WM_api.hh:1803
@ WM_JOB_TYPE_BAKE_GEOMETRY_NODES
Definition WM_api.hh:1810
@ WM_JOB_TYPE_USD_EXPORT
Definition WM_api.hh:1799
@ WM_JOB_TYPE_SEQ_DRAW_THUMBNAIL
Definition WM_api.hh:1807
@ WM_JOB_TYPE_ASSET_LIBRARY_LOAD
Definition WM_api.hh:1787
@ WM_JOB_TYPE_ALEMBIC_EXPORT
Definition WM_api.hh:1797
@ WM_JOB_TYPE_USD_IMPORT
Definition WM_api.hh:1798
@ WM_JOB_TYPE_CLIP_BUILD_PROXY
Definition WM_api.hh:1788
@ WM_JOB_TYPE_TRACE_IMAGE
Definition WM_api.hh:1805
@ WM_JOB_TYPE_CLIP_PREFETCH
Definition WM_api.hh:1791
@ WM_JOB_TYPE_SEQ_BUILD_PREVIEW
Definition WM_api.hh:1793
@ WM_JOB_TYPE_RENDER
Definition WM_api.hh:1778
@ WM_JOB_TYPE_LOAD_PREVIEW
Definition WM_api.hh:1781
@ WM_JOB_TYPE_LINEART
Definition WM_api.hh:1806
@ WM_JOB_TYPE_ALEMBIC_IMPORT
Definition WM_api.hh:1796
@ WM_JOB_TYPE_ANY
Definition WM_api.hh:1775
@ WM_JOB_TYPE_OBJECT_SIM_OCEAN
Definition WM_api.hh:1782
@ WM_JOB_TYPE_STUDIOLIGHT
Definition WM_api.hh:1801
@ WM_JOB_TYPE_CLIP_SOLVE_CAMERA
Definition WM_api.hh:1790
@ WM_JOB_TYPE_FILESEL_READDIR
Definition WM_api.hh:1786
@ WM_JOB_TYPE_CLIP_TRACK_MARKERS
Definition WM_api.hh:1789
@ WM_JOB_TYPE_SHADER_COMPILATION
Definition WM_api.hh:1800
@ WM_JOB_TYPE_OBJECT_SIM_FLUID
Definition WM_api.hh:1783
@ WM_JOB_TYPE_OBJECT_BAKE_TEXTURE
Definition WM_api.hh:1784
void WM_cursor_progress(wmWindow *win, float progress_factor)
wmGesture * WM_gesture_new(wmWindow *window, const ARegion *region, const wmEvent *event, int type)
Definition wm_gesture.cc:39
wmOperator * WM_operator_find_modal_by_type(wmWindow *win, const wmOperatorType *ot)
void wmOrtho2_pixelspace(float x, float y)
void WM_draw_region_viewport_ensure(Scene *scene, ARegion *region, short space_type)
Definition wm_draw.cc:1720
wmOperatorTypeMacro * WM_operatortype_macro_define(wmOperatorType *ot, const char *idname)
const char * WM_init_state_app_template_get()
Definition wm_files.cc:1207
void WM_uilisttype_free()
void WM_init_splash_on_startup(bContext *C)
const char * WM_jobs_name(const wmWindowManager *wm, const void *owner)
Definition wm_jobs.cc:319
wmOperatorStatus WM_gesture_circle_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void WM_event_remove_ui_handler(ListBase *handlers, wmUIHandlerFunc handle_fn, wmUIHandlerRemoveFunc remove_fn, void *user_data, bool postpone)
bool WM_event_is_modal_drag_exit(const wmEvent *event, short init_event_type, short init_event_val)
bool WM_operator_properties_id_lookup_is_set(PointerRNA *ptr)
void WM_cursor_warp(wmWindow *win, int x, int y)
void WM_redraw_windows(bContext *C)
Definition wm_draw.cc:1695
void WM_window_cursor_keymap_status_refresh(bContext *C, wmWindow *win)
bool WM_clipboard_image_set_byte_buffer(ImBuf *ibuf) ATTR_NONNULL(1)
void WM_global_report(eReportType type, const char *message)
wmDragPath * WM_drag_create_path_data(blender::Span< const char * > paths)
void WM_gesture_straightline_cancel(bContext *C, wmOperator *op)
bool WM_event_is_mouse_drag(const wmEvent *event)
wmOperatorStatus WM_gesture_lasso_modal(bContext *C, wmOperator *op, const wmEvent *event)
void(*)(void *custom_data, wmJobWorkerStatus *worker_status) wm_jobs_start_callback
Definition WM_api.hh:1848
wmJob * WM_jobs_get(wmWindowManager *wm, wmWindow *win, const void *owner, const char *name, eWM_JobFlag flag, eWM_JobType job_type)
Definition wm_jobs.cc:211
void WM_operator_properties_select_operation_simple(wmOperatorType *ot)
void(*)(wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result) wmEventHandler_KeymapDynamicFn
Definition WM_api.hh:641
void WM_event_consecutive_data_free(wmWindow *win)
void WM_event_get_keymaps_from_handler(wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result)
GPUViewport * WM_draw_region_get_viewport(ARegion *region)
Definition wm_draw.cc:940
void * WM_draw_cb_activate(wmWindow *win, void(*draw)(const wmWindow *win, void *customdata), void *customdata)
Definition wm_draw.cc:635
int(*)(bContext *C, const wmEvent *event, void *userdata) wmUIHandlerFunc
Definition WM_api.hh:677
void WM_gesture_polyline_cancel(bContext *C, wmOperator *op)
wmWindow * WM_window_open(bContext *C, const char *title, const rcti *rect_unscaled, int space_type, bool toplevel, bool dialog, bool temp, eWindowAlignment alignment, void(*area_setup_fn)(bScreen *screen, ScrArea *area, void *user_data), void *area_setup_user_data) ATTR_NONNULL(1
void WM_gesture_lines_cancel(bContext *C, wmOperator *op)
eWM_EventHandlerFlag
Definition WM_api.hh:577
@ WM_HANDLER_BLOCKING
Definition WM_api.hh:579
@ WM_HANDLER_DO_FREE
Definition WM_api.hh:585
@ WM_HANDLER_ACCEPT_DBL_CLICK
Definition WM_api.hh:581
size_t size_t WM_operator_py_idname(char *dst, const char *src) ATTR_NONNULL(1
void WM_event_free_ui_handler_all(bContext *C, ListBase *handlers, wmUIHandlerFunc handle_fn, wmUIHandlerRemoveFunc remove_fn)
void WM_window_native_pixel_coords(const wmWindow *win, int *x, int *y)
void WM_reports_from_reports_move(wmWindowManager *wm, ReportList *reports)
const char * WM_drag_get_item_name(wmDrag *drag)
void wmViewport(const rcti *winrct)
void wmOrtho2(float x1, float x2, float y1, float y2)
void WM_jobs_stop_all_from_owner(wmWindowManager *wm, const void *owner) ATTR_NONNULL()
Definition wm_jobs.cc:663
void WM_operator_properties_select_operation(wmOperatorType *ot)
void WM_paneltype_init()
std::string WM_operatortype_name(wmOperatorType *ot, PointerRNA *properties)
void WM_tooltip_init(bContext *C, wmWindow *win)
Definition wm_tooltip.cc:97
wmOperatorStatus WM_gesture_box_modal(bContext *C, wmOperator *op, const wmEvent *event)
bool WM_operator_depends_on_cursor(bContext &C, wmOperatorType &ot, PointerRNA *properties)
void WM_drag_add_asset_list_item(wmDrag *drag, const blender::asset_system::AssetRepresentation *asset)
Free asset ID imported for canceled drop.
void WM_operator_properties_select_action(wmOperatorType *ot, int default_action, bool hide_gui)
void WM_jobs_kill_type(wmWindowManager *wm, const void *owner, int job_type)
Definition wm_jobs.cc:623
bool WM_window_is_fullscreen(const wmWindow *win)
wmOperatorStatus WM_gesture_box_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void WM_event_get_keymap_from_toolsystem(wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result)
void WM_event_tablet_data_default_set(wmTabletData *tablet_data)
bool WM_jobs_has_running(const wmWindowManager *wm)
Definition wm_jobs.cc:771
void WM_tooltip_timer_init_ex(bContext *C, wmWindow *win, ScrArea *area, ARegion *region, wmTooltipInitFn init, double delay)
Definition wm_tooltip.cc:44
void WM_event_add_notifier(const bContext *C, unsigned int type, void *reference)
void WM_operator_properties_border_to_rctf(wmOperator *op, rctf *r_rect)
void WM_operator_properties_generic_select(wmOperatorType *ot)
bool WM_jobs_is_stopped(const wmWindowManager *wm, const void *owner)
Definition wm_jobs.cc:346
ID * WM_drag_asset_id_import(const bContext *C, wmDragAsset *asset_drag, int flag_extra)
void WM_window_dpi_set_userdef(const wmWindow *win)
Definition wm_window.cc:654
void wmPartialViewport(rcti *drawrct, const rcti *winrct, const rcti *partialrct)
void WM_drag_free(wmDrag *drag)
void WM_init_state_app_template_set(const char *app_template)
Definition wm_files.cc:1195
void WM_operator_properties_gesture_straightline(wmOperatorType *ot, int cursor)
bool WM_region_use_viewport(ScrArea *area, ARegion *region)
Definition wm_draw.cc:582
void WM_event_start_prepared_drag(bContext *C, wmDrag *drag)
eWM_CapabilitiesFlag
Definition WM_api.hh:168
@ WM_CAPABILITY_WINDOW_POSITION
Definition WM_api.hh:184
@ WM_CAPABILITY_CURSOR_WARP
Definition WM_api.hh:170
@ WM_CAPABILITY_INITIALIZED
Definition WM_api.hh:213
@ WM_CAPABILITY_TRACKPAD_PHYSICAL_DIRECTION
Definition WM_api.hh:201
@ WM_CAPABILITY_CURSOR_RGBA
Definition WM_api.hh:207
@ WM_CAPABILITY_WINDOW_DECORATION_STYLES
Definition WM_api.hh:203
@ WM_CAPABILITY_GPU_FRONT_BUFFER_READ
Definition WM_api.hh:193
@ WM_CAPABILITY_CURSOR_GENERATOR
Definition WM_api.hh:209
@ WM_CAPABILITY_MULTIMONITOR_PLACEMENT
Definition WM_api.hh:211
@ WM_CAPABILITY_CLIPBOARD_PRIMARY
Definition WM_api.hh:189
@ WM_CAPABILITY_KEYBOARD_HYPER_KEY
Definition WM_api.hh:205
@ WM_CAPABILITY_CLIPBOARD_IMAGE
Definition WM_api.hh:195
@ WM_CAPABILITY_DESKTOP_SAMPLE
Definition WM_api.hh:197
@ WM_CAPABILITY_INPUT_IME
Definition WM_api.hh:199
bool WM_cursor_set_from_tool(wmWindow *win, const ScrArea *area, const ARegion *region)
blender::Bounds< blender::int2 > WM_operator_properties_border_to_bounds(wmOperator *op)
void WM_init_native_pixels(bool do_it)
void WM_event_modal_handler_region_replace(wmWindow *win, const ARegion *old_region, ARegion *new_region)
void WM_gesture_circle_cancel(bContext *C, wmOperator *op)
void * WM_jobs_customdata_get(wmJob *wm_job)
Definition wm_jobs.cc:352
const std::string & WM_drag_get_string(const wmDrag *drag)
void WM_tooltip_immediate_init(bContext *C, wmWindow *win, ScrArea *area, ARegion *region, wmTooltipInitFn init)
Definition wm_tooltip.cc:29
void WM_cursor_modal_restore(wmWindow *win)
wmOperatorStatus WM_gesture_straightline_active_side_invoke(bContext *C, wmOperator *op, const wmEvent *event)
bool WM_window_pixels_read_sample_from_offscreen(bContext *C, wmWindow *win, const int pos[2], float r_col[3])
Definition wm_draw.cc:1448
void WM_jobs_kill_all(wmWindowManager *wm)
Definition wm_jobs.cc:602
int WM_window_native_pixel_y(const wmWindow *win)
const char * WM_window_cursor_keymap_status_get(const wmWindow *win, int button_index, int type_index)
std::string WM_operator_pystring(bContext *C, wmOperator *op, bool all_args, bool macro_args)
eWM_JobFlag
Definition WM_api.hh:1759
@ WM_JOB_EXCL_RENDER
Definition WM_api.hh:1765
@ WM_JOB_PROGRESS
Definition WM_api.hh:1766
@ WM_JOB_PRIORITY
Definition WM_api.hh:1760
void WM_operator_properties_border(wmOperatorType *ot)
void WM_jobs_delay_start(wmJob *wm_job, double delay_time)
Definition wm_jobs.cc:383
wmEventHandler_UI * WM_event_add_ui_handler(const bContext *C, ListBase *handlers, wmUIHandlerFunc handle_fn, wmUIHandlerRemoveFunc remove_fn, void *user_data, eWM_EventHandlerFlag flag)
float WM_jobs_progress(const wmWindowManager *wm, const void *owner)
Definition wm_jobs.cc:267
void WM_cursor_wait(bool val)
blender::Span< std::string > WM_drag_get_paths(const wmDrag *drag)
void WM_draw_cb_exit(wmWindow *win, void *handle)
Definition wm_draw.cc:648
int WM_window_native_pixel_x(const wmWindow *win)
void WM_drag_draw_default_fn(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2])
void WM_check(bContext *C)
Definition wm.cc:455
std::string WM_operatortype_description_or_name(bContext *C, wmOperatorType *ot, PointerRNA *properties)
bool WM_paint_cursor_end(wmPaintCursor *handle)
int WM_drag_get_path_file_type(const wmDrag *drag)
bool WM_drag_is_ID_type(const wmDrag *drag, int idcode)
void WM_paint_cursor_remove_by_type(wmWindowManager *wm, void *draw_fn, void(*free)(void *))
void WM_operator_properties_gesture_lasso(wmOperatorType *ot)
const char * WM_drag_get_single_path(const wmDrag *drag)
double WM_jobs_starttime(const wmWindowManager *wm, const void *owner)
Definition wm_jobs.cc:308
void WM_tooltip_refresh(bContext *C, wmWindow *win)
void WM_jobs_callbacks(wmJob *wm_job, wm_jobs_start_callback startjob, void(*initjob)(void *), void(*update)(void *), void(*endjob)(void *))
Definition wm_jobs.cc:388
std::string WM_operatortype_description(bContext *C, wmOperatorType *ot, PointerRNA *properties)
void WM_jobs_kill_all_from_owner(wmWindowManager *wm, const void *owner) ATTR_NONNULL()
Definition wm_jobs.cc:638
void WM_operator_properties_select_walk_direction(wmOperatorType *ot)
void WM_operator_region_active_win_set(bContext *C)
ID * WM_file_append_datablock(Main *bmain, Scene *scene, ViewLayer *view_layer, View3D *v3d, const char *filepath, short id_code, const char *id_name, int flag)
void WM_paneltype_remove(PanelType *pt)
void WM_operator_properties_select_random(wmOperatorType *ot)
wmKeyMapItem * WM_event_match_keymap_item_from_handlers(bContext *C, wmWindowManager *wm, wmWindow *win, ListBase *handlers, const wmEvent *event)
bool WM_init_window_frame_get()
void WM_jobs_callbacks_ex(wmJob *wm_job, wm_jobs_start_callback startjob, void(*initjob)(void *), void(*update)(void *), void(*endjob)(void *), void(*completed)(void *), void(*canceled)(void *))
Definition wm_jobs.cc:397
ID * WM_drag_get_local_ID_or_import_from_asset(const bContext *C, const wmDrag *drag, int idcode)
void WM_cursor_time(wmWindow *win, int nr)
bool WM_drag_asset_will_import_packed(const wmDrag *drag)
void wmWindowViewport(const wmWindow *win)
void WM_file_autoexec_init(const char *filepath)
Definition wm_files.cc:641
std::optional< std::string > WM_context_path_resolve_full(bContext *C, const PointerRNA *ptr)
void WM_dropbox_update_ot()
wmOperatorStatus WM_gesture_lines_modal(bContext *C, wmOperator *op, const wmEvent *event)
bool(*)(const wmWindow *win, const ScrArea *area, const ARegion *region, const wmEvent *event) EventHandlerPoll
Definition WM_api.hh:589
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)
void WM_menutype_idname_visit_for_search(const bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *edit_text, blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn)
eFileSel_Action
Definition WM_api.hh:1132
@ FILE_OPENFILE
Definition WM_api.hh:1133
@ FILE_SAVE
Definition WM_api.hh:1134
wmOperatorStatus WM_gesture_lines_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void WM_tooltip_timer_init(bContext *C, wmWindow *win, ScrArea *area, ARegion *region, wmTooltipInitFn init)
Definition wm_tooltip.cc:64
void WM_operator_properties_gesture_polyline(wmOperatorType *ot)
double WM_tooltip_time_closed()
Definition wm_tooltip.cc:24
bool WM_gesture_is_modal_first(const wmGesture *gesture)
bool WM_menutype_add(MenuType *mt)
void WM_operator_properties_gesture_box_select(wmOperatorType *ot)
void WM_progress_clear(wmWindow *win)
ID * WM_drag_get_local_ID_from_event(const wmEvent *event, short idcode)
void WM_init_state_size_set(int stax, int stay, int sizx, int sizy)
void WM_gestures_free_all(wmWindow *win)
void WM_paneltype_idname_visit_for_search(const bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *edit_text, blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn)
void WM_jobs_kill_all_except(wmWindowManager *wm, const void *owner)
Definition wm_jobs.cc:614
float WM_window_dpi_get_scale(const wmWindow *win)
Definition wm_window.cc:700
void WM_progress_set(wmWindow *win, float progress)
bool WM_operator_bl_idname_is_valid(const char *idname)
wmOperatorStatus WM_gesture_polyline_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void WM_event_drag_image(wmDrag *drag, const ImBuf *imb, float scale)
void WM_gesture_lasso_cancel(bContext *C, wmOperator *op)
void WM_generic_callback_free(wmGenericCallback *callback)
Definition wm_utils.cc:20
void WM_exit_ex(bContext *C, bool do_python_exit, bool do_user_exit_actions)
void WM_draw_region_viewport_bind(ARegion *region)
Definition wm_draw.cc:1726
bool WM_jobs_test(const wmWindowManager *wm, const void *owner, int job_type)
Definition wm_jobs.cc:247
void WM_event_modal_handler_area_replace(wmWindow *win, const ScrArea *old_area, ScrArea *new_area)
void WM_job_main_thread_lock_acquire(wmJob *wm_job)
Definition wm_jobs.cc:145
ListBase * WM_dropboxmap_find(const char *idname, int spaceid, int regionid)
wmEventHandler_Op wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op) ATTR_NONNULL(1
GPUViewport * WM_draw_region_get_bound_viewport(ARegion *region)
Definition wm_draw.cc:950
void WM_operatortype_idname_visit_for_search(const bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *edit_text, blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn)
void WM_operator_properties_gesture_circle(wmOperatorType *ot)
void WM_operator_properties_select_all(wmOperatorType *ot)
void WM_gesture_end(wmWindow *win, wmGesture *gesture)
Definition wm_gesture.cc:99
ID * WM_file_link_datablock(Main *bmain, Scene *scene, ViewLayer *view_layer, View3D *v3d, const char *filepath, short id_code, const char *id_name, int flag)
bool WM_clipboard_image_available()
ARegion *(*)(bContext *C, ARegion *region, int *pass, double *r_pass_delay, bool *r_exit_on_event) wmTooltipInitFn
Definition WM_api.hh:2124
void WM_operator_properties_use_cursor_init(wmOperatorType *ot)
const char * WM_uilisttype_list_id_get(const uiListType *ult, uiList *list)
const char * WM_ghost_backend()
void WM_event_drag_preview_icon(wmDrag *drag, int icon_id)
void WM_init_window_frame_set(bool do_it)
wmOperatorStatus WM_gesture_straightline_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void WM_operatortype_last_properties_clear_all()
void WM_event_start_drag(bContext *C, int icon, eWM_DragDataType type, void *poin, unsigned int flags)
void WM_operator_properties_gesture_box_ex(wmOperatorType *ot, bool deselect, bool extend)
wmWindow * WM_window_find_under_cursor(wmWindow *win, const int event_xy[2], int r_event_xy_other[2])
void WM_main_remove_notifier_reference(const void *reference)
void WM_window_rect_calc(const wmWindow *win, rcti *r_rect)
std::optional< std::string > WM_prop_pystring_assign(bContext *C, PointerRNA *ptr, PropertyRNA *prop, int index)
eWM_CapabilitiesFlag WM_capabilities_flag()
bool WM_window_is_maximized(const wmWindow *win)
uint WM_cursor_preferred_logical_size()
wmWindow * WM_window_find_by_area(wmWindowManager *wm, const ScrArea *area)
wmGenericCallback * WM_generic_callback_steal(wmGenericCallback *callback)
Definition wm_utils.cc:30
wmEventHandler_Op * WM_event_add_modal_handler_ex(wmWindow *win, ScrArea *area, ARegion *region, wmOperator *op) ATTR_NONNULL(1
std::string WM_drag_get_string_firstline(const wmDrag *drag)
bool WM_menutype_poll(bContext *C, MenuType *mt)
wmEventHandler_Keymap * WM_event_add_keymap_handler_dynamic(ListBase *handlers, wmEventHandler_KeymapDynamicFn keymap_fn, void *user_data)
void WM_generic_user_data_free(wmGenericUserData *wm_userdata)
Definition wm_utils.cc:45
void WM_window_screen_rect_calc(const wmWindow *win, rcti *r_rect)
void WM_operator_properties_mouse_select(wmOperatorType *ot)
void WM_drag_data_free(eWM_DragDataType dragtype, void *poin)
blender::Array< blender::int2 > WM_gesture_lasso_path_to_array(bContext *C, wmOperator *op)
void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void(*free)(void *))
Definition wm_jobs.cc:360
void WM_operator_properties_gesture_box_zoom(wmOperatorType *ot)
void WM_init_state_fullscreen_set()
void WM_operator_properties_id_lookup(wmOperatorType *ot, const bool add_name_prop)
void WM_drag_free_list(ListBase *lb)
void WM_event_add_notifier_ex(wmWindowManager *wm, const wmWindow *win, unsigned int type, void *reference)
void wmGetProjectionMatrix(float mat[4][4], const rcti *winrct)
wmDragAsset * WM_drag_get_asset_data(const wmDrag *drag, int idcode)
void WM_init_state_normal_set()
void WM_drag_draw_item_name_fn(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2])
blender::Span< MenuType * > WM_menutypes_registered_get()
void WM_init(bContext *C, int argc, const char **argv)
wmOperatorStatus WM_gesture_circle_modal(bContext *C, wmOperator *op, const wmEvent *event)
void WM_global_reportf(eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(2
ScrArea * WM_window_status_area_find(wmWindow *win, bScreen *screen)
void WM_menutype_init()
void WM_menutype_freelink(MenuType *mt)
PanelType * WM_paneltype_find(blender::StringRef idname, bool quiet)
void WM_uilisttype_init()
uint8_t * WM_window_pixels_read_from_offscreen(bContext *C, wmWindow *win, int r_size[2])
Definition wm_draw.cc:1403
void WM_draw_region_free(ARegion *region)
Definition wm_draw.cc:1677
bool WM_event_is_mouse_drag_or_press(const wmEvent *event)
void WM_event_set_keymap_handler_post_callback(wmEventHandler_Keymap *handler, void(keymap_tag)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data), void *user_data)
void WM_job_main_thread_lock_release(wmJob *wm_job)
Definition wm_jobs.cc:150
void WM_uilisttype_remove_ptr(Main *bmain, uiListType *ult)
wmOperatorType * WM_operatortype_append_macro(const char *idname, const char *name, const char *description, int flag)
void WM_operator_properties_id_lookup_set_from_id(PointerRNA *ptr, const ID *id)
void WM_init_state_start_with_console_set(bool value)
void WM_drag_add_local_ID(wmDrag *drag, ID *id, ID *from_parent)
void WM_init_gpu()
wmOperatorStatus WM_gesture_lasso_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void(*)(bContext *C, void *userdata) wmUIHandlerRemoveFunc
Definition WM_api.hh:678
void WM_operatortype_append(void(*opfunc)(wmOperatorType *ot))
void WM_event_fileselect_event(wmWindowManager *wm, void *ophandle, int eventval)
wmOperatorStatus WM_operator_flag_only_pass_through_on_press(wmOperatorStatus retval, const wmEvent *event)
wmKeyMapItem * WM_event_match_keymap_item(bContext *C, wmKeyMap *keymap, const wmEvent *event)
int WM_event_absolute_delta_x(const wmEvent *event)
void WM_windows_scene_data_sync(const ListBase *win_lb, Scene *scene) ATTR_NONNULL()
bool WM_event_is_tablet(const wmEvent *event)
void WM_event_consecutive_data_set(wmWindow *win, const char *id, void *custom_data)
void WM_operatortype_remove_ptr(wmOperatorType *ot)
void WM_event_drag_path_override_poin_data_with_space_file_paths(const bContext *, wmDrag *drag)
wmPaintCursor * WM_paint_cursor_activate(short space_type, short region_type, bool(*poll)(bContext *C), wmPaintCursorDraw draw, void *customdata)
MenuType * WM_menutype_find(blender::StringRef idname, bool quiet)
wmOperatorStatus WM_gesture_straightline_oneshot_modal(bContext *C, wmOperator *op, const wmEvent *event)
bool WM_cursor_modal_is_set_ok(const wmWindow *win)
void WM_main(bContext *C) ATTR_NORETURN
Definition wm.cc:583
std::string WM_operator_pystring_ex(bContext *C, wmOperator *op, bool all_args, bool macro_args, wmOperatorType *ot, PointerRNA *opptr)
bool WM_platform_associate_set(bool do_register, bool all_users, char **r_error_msg)
wmEventHandler_Op wmEventHandler_Op void WM_event_remove_model_handler(ListBase *handlers, const wmOperator *op, bool postpone) ATTR_NONNULL(1
bool write_crash_blend()
Definition wm_files.cc:2078
void WM_init_window_focus_set(bool do_it)
uiListType * WM_uilisttype_find(blender::StringRef idname, bool quiet)
void WM_window_decoration_style_flags_set(const wmWindow *win, eWM_WindowDecorationStyleFlag style_flags)
Definition wm_window.cc:732
void * WM_jobs_customdata_from_type(wmWindowManager *wm, const void *owner, int job_type)
Definition wm_jobs.cc:330
ID * WM_operator_properties_id_lookup_from_name_or_session_uid(Main *bmain, PointerRNA *ptr, enum ID_Type type)
bool WM_desktop_cursor_sample_read(float r_col[3])
Definition wm_draw.cc:1501
void WM_operator_properties_checker_interval(wmOperatorType *ot, bool nth_can_disable)
void WM_gestures_remove(wmWindow *win)
void wmWindowViewport_ex(const wmWindow *win, float offset)
void wmOrtho2_region_pixelspace(const ARegion *region)
bool WM_window_support_hdr_color(const wmWindow *win)
std::string WM_operator_pystring_abbreviate(std::string str, int str_len_max)
void WM_event_ui_handler_region_popup_replace(wmWindow *win, const ARegion *old_region, ARegion *new_region)
void WM_cursor_grab_disable(wmWindow *win, const int mouse_ungrab_xy[2])
void WM_event_remove_handlers_by_area(ListBase *handlers, const ScrArea *area)
void WM_event_get_keymap_from_toolsystem_with_gizmos(wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result)
bool WM_operator_properties_checker_interval_test(const CheckerIntervalParams *op_params, int depth)
bool WM_event_match(const wmEvent *winevent, const wmKeyMapItem *kmi)
void WM_operatortype_props_advanced_end(wmOperatorType *ot)
const ListBase * WM_drag_asset_list_get(const wmDrag *drag)
bool WM_file_recover_last_session(bContext *C, const bool use_scripts_autoexec_check, ReportList *reports)
Definition wm_files.cc:3475
void WM_operator_properties_select_action_simple(wmOperatorType *ot, int default_action, bool hide_gui)
wmWindow wmWindow * WM_window_open_temp(bContext *C, const char *title, int space_type, bool dialog)
void WM_window_decoration_style_apply(const wmWindow *win, const bScreen *screen=nullptr)
Definition wm_window.cc:776
wmOperatorStatus WM_gesture_straightline_modal(bContext *C, wmOperator *op, const wmEvent *event)
bool WM_drag_has_path_file_type(const wmDrag *drag, int file_type)
bool WM_operatortype_remove(const char *idname)
void WM_operator_type_modal_from_exec_for_object_edit_coords(wmOperatorType *ot)
bool WM_window_pixels_read_sample(bContext *C, wmWindow *win, const int pos[2], float r_col[3])
Definition wm_draw.cc:1492
void WM_event_remove_handlers(bContext *C, ListBase *handlers)
ID * WM_drag_get_local_ID(const wmDrag *drag, short idcode)
void WM_event_add_mousemove(wmWindow *win)
Scene * WM_windows_scene_get_from_screen(const wmWindowManager *wm, const bScreen *screen) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
void WM_paneltype_clear()
eWM_WindowDecorationStyleFlag
Definition WM_api.hh:428
@ WM_WINDOW_DECORATION_STYLE_COLORED_TITLEBAR
Definition WM_api.hh:432
@ WM_WINDOW_DECORATION_STYLE_NONE
Definition WM_api.hh:430
std::string(*)(bContext *C, wmDrag *drag, const int xy[2], wmDropBox *drop) WMDropboxTooltipFunc
Definition WM_types.hh:1284
eWM_DragDataType
Definition WM_types.hh:1200
void(*)(bContext *C, const blender::int2 &xy, const blender::float2 &tilt, void *customdata) wmPaintCursorDraw
Definition WM_types.hh:1193
eWM_CursorWrapAxis
Definition WM_types.hh:225
volatile int lock
long long int int64_t
static DBVT_INLINE btDbvtNode * sort(btDbvtNode *n, btDbvtNode *&r)
Definition btDbvt.cpp:418
#define str(s)
uint pos
#define filter
format
static ulong state[N]
VecBase< int32_t, 2 > int2
VecBase< float, 3 > float3
static void update(bNodeTree *ntree)
float wrap(float value, float max, float min)
Definition node_math.h:103
static void init(bNodeTree *, bNode *node)
static void copy(bNodeTree *dest_ntree, bNode *dest_node, const bNode *src_node)
const char * name
The meta-data of an asset. By creating and giving this for a data-block (ID.asset_data),...
Definition DNA_ID.h:414
Wrapper for bScreen.
wmTimer * timer
static DynamicLibrary lib
void WM_operator_stack_clear(wmWindowManager *wm)
Definition wm.cc:358
void WM_operator_type_set(wmOperator *op, wmOperatorType *ot)
Definition wm.cc:305
void WM_operator_handlers_clear(wmWindowManager *wm, wmOperatorType *ot)
Definition wm.cc:367
void WM_operator_free_all_after(wmWindowManager *wm, wmOperator *op)
Definition wm.cc:294
void WM_operator_free(wmOperator *op)
Definition wm.cc:259
void WM_drag_free_imported_drag_ID(Main *bmain, wmDrag *drag, wmDropBox *drop)
wmDragAssetCatalog * WM_drag_get_asset_catalog_data(const wmDrag *drag)
static ListBase dropboxes
int xy[2]
Definition wm_draw.cc:178
bool WM_event_consecutive_gesture_test_break(const wmWindow *win, const wmEvent *event)
bool WM_event_drag_test_with_delta(const wmEvent *event, const int drag_delta[2])
bool WM_event_drag_test(const wmEvent *event, const int prev_xy[2])
int WM_userdef_event_map(int kmitype)
void WM_event_drag_start_mval_fl(const wmEvent *event, const ARegion *region, float r_mval[2])
bool WM_event_consecutive_gesture_test(const wmEvent *event)
void WM_event_drag_start_mval(const wmEvent *event, const ARegion *region, int r_mval[2])
void WM_event_drag_start_xy(const wmEvent *event, int r_xy[2])
int WM_userdef_event_type_from_keymap_type(int kmitype)
bool WM_cursor_test_motion_and_update(const int mval[2])
int WM_event_drag_threshold(const wmEvent *event)
wmOperatorStatus WM_operator_call_notest(bContext *C, wmOperator *op)
void WM_operator_name_call_ptr_with_depends_on_cursor(bContext *C, wmOperatorType *ot, blender::wm::OpCallContext opcontext, PointerRNA *properties, const wmEvent *event, const StringRef drawstr)
wmEventHandler_Keymap * WM_event_add_keymap_handler_poll(ListBase *handlers, wmKeyMap *keymap, EventHandlerPoll poll)
wmEventHandler_Keymap * WM_event_add_keymap_handler(ListBase *handlers, wmKeyMap *keymap)
bool WM_operator_ui_poll(wmOperatorType *ot, PointerRNA *ptr)
wmOperatorStatus WM_operator_name_call_ptr(bContext *C, wmOperatorType *ot, blender::wm::OpCallContext context, PointerRNA *properties, const wmEvent *event)
bool WM_operator_poll(bContext *C, wmOperatorType *ot)
bool WM_operator_repeat_check(const bContext *, wmOperator *op)
bool WM_operator_poll_or_report_error(bContext *C, wmOperatorType *ot, ReportList *reports)
bool WM_operator_name_poll(bContext *C, const char *opstring)
wmOperatorStatus WM_operator_repeat_last(bContext *C, wmOperator *op)
bool WM_event_handler_region_marker_poll(const wmWindow *win, const ScrArea *area, const ARegion *region, const wmEvent *event)
wmOperatorStatus WM_operator_call(bContext *C, wmOperator *op)
wmOperatorStatus WM_operator_call_ex(bContext *C, wmOperator *op, const bool store)
wmEventHandler_Keymap * WM_event_add_keymap_handler_priority(ListBase *handlers, wmKeyMap *keymap, int)
wmOperatorStatus WM_operator_repeat(bContext *C, wmOperator *op)
wmEvent * WM_event_add(wmWindow *win, const wmEvent *event_to_add)
wmEventHandler_Keymap * WM_event_add_keymap_handler_v2d_mask(ListBase *handlers, wmKeyMap *keymap)
bool WM_operator_poll_context(bContext *C, wmOperatorType *ot, blender::wm::OpCallContext context)
bool WM_operator_is_repeat(const bContext *C, const wmOperator *op)
bool WM_event_handler_region_v2d_mask_poll(const wmWindow *, const ScrArea *, const ARegion *region, const wmEvent *event)
wmOperatorStatus WM_operator_call_py(bContext *C, wmOperatorType *ot, blender::wm::OpCallContext context, PointerRNA *properties, ReportList *reports, const bool is_undo)
wmOperatorStatus WM_operator_name_call(bContext *C, const char *opstring, blender::wm::OpCallContext context, PointerRNA *properties, const wmEvent *event)
wmOperatorStatus WM_operator_name_call_with_properties(bContext *C, const char *opstring, blender::wm::OpCallContext context, IDProperty *properties, const wmEvent *event)
void WM_menu_name_call(bContext *C, const char *menu_name, blender::wm::OpCallContext context)
bool WM_event_handler_region_v2d_mask_no_marker_poll(const wmWindow *win, const ScrArea *area, const ARegion *region, const wmEvent *event)
void wm_event_init_from_window(wmWindow *win, wmEvent *event)
wmEventType
PointerRNA * ptr
Definition wm_files.cc:4238
char app_template[64]
Definition wm_files.cc:1191
wmOperatorType * ot
Definition wm_files.cc:4237
void WM_operator_properties_confirm_or_exec(wmOperatorType *ot)
wmOperatorStatus WM_operator_redo_popup(bContext *C, wmOperator *op)
wmOperatorStatus WM_operator_confirm_message(bContext *C, wmOperator *op, const char *message)
wmOperatorStatus WM_operator_props_popup_call(bContext *C, wmOperator *op, const wmEvent *)
wmOperatorStatus WM_operator_props_popup_confirm(bContext *C, wmOperator *op, const wmEvent *)
wmOperatorStatus WM_operator_confirm(bContext *C, wmOperator *op, const wmEvent *)
wmOperatorStatus WM_menu_invoke_ex(bContext *C, wmOperator *op, blender::wm::OpCallContext opcontext)
void WM_operator_last_properties_ensure(wmOperatorType *ot, PointerRNA *ptr)
wmOperatorStatus WM_operator_props_dialog_popup(bContext *C, wmOperator *op, int width, std::optional< std::string > title, std::optional< std::string > confirm_text, const bool cancel_default, std::optional< std::string > message)
void WM_operator_properties_reset(wmOperator *op)
wmOperatorStatus WM_menu_invoke(bContext *C, wmOperator *op, const wmEvent *)
bool WM_operator_last_properties_store(wmOperator *op)
void WM_operator_properties_alloc(PointerRNA **ptr, IDProperty **properties, const char *opstring)
void WM_operator_view3d_unit_defaults(bContext *C, wmOperator *op)
wmOperatorStatus WM_generic_select_modal(bContext *C, wmOperator *op, const wmEvent *event)
bool WM_operator_winactive(bContext *C)
int WM_operator_smooth_viewtx_get(const wmOperator *op)
bool WM_operator_check_ui_enabled(const bContext *C, const char *idname)
wmOperatorStatus WM_operator_confirm_or_exec(bContext *C, wmOperator *op, const wmEvent *)
wmOperatorStatus WM_operator_confirm_message_ex(bContext *C, wmOperator *op, const char *title, const int icon, const char *message, const blender::wm::OpCallContext)
wmOperatorStatus WM_generic_select_invoke(bContext *C, wmOperator *op, const wmEvent *event)
wmOperator * WM_operator_last_redo(const bContext *C)
bool WM_operator_last_properties_init(wmOperator *op)
bool WM_operator_filesel_ensure_ext_imtype(wmOperator *op, const ImageFormatData *im_format)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
IDProperty * WM_operator_last_properties_ensure_idprops(wmOperatorType *ot)
wmOperatorStatus WM_operator_confirm_ex(bContext *C, wmOperator *op, const char *title, const char *message, const char *confirm_text, int icon, bool cancel_default)
wmOperatorStatus WM_enum_search_invoke(bContext *C, wmOperator *op, const wmEvent *)
bool WM_operator_properties_default(PointerRNA *ptr, const bool do_update)
void WM_operator_properties_clear(PointerRNA *ptr)
wmOperatorStatus WM_operator_ui_popup(bContext *C, wmOperator *op, int width)
void WM_operator_properties_create(PointerRNA *ptr, const char *opstring)
void WM_operator_properties_free(PointerRNA *ptr)
ID * WM_operator_drop_load_path(bContext *C, wmOperator *op, const short idcode)
wmOperatorStatus WM_operator_props_popup_confirm_ex(bContext *C, wmOperator *op, const wmEvent *, std::optional< std::string > title, std::optional< std::string > confirm_text, const bool cancel_default, std::optional< std::string > message)
void WM_operator_properties_sanitize(PointerRNA *ptr, const bool no_context)
wmOperatorStatus WM_operator_props_popup(bContext *C, wmOperator *op, const wmEvent *)
wmOperatorStatus WM_operator_filesel(bContext *C, wmOperator *op, const wmEvent *)
ViewLayer * WM_windows_view_layer_get_from_screen(const wmWindowManager *wm, const bScreen *screen)
void WM_window_set_active_scene(Main *bmain, bContext *C, wmWindow *win, Scene *scene)
void WM_window_ensure_active_view_layer(wmWindow *win)
void WM_window_set_active_workspace(bContext *C, wmWindow *win, WorkSpace *workspace)
void * WM_system_gpu_context_create()
WorkSpaceLayout * WM_window_get_active_layout(const wmWindow *win)
void WM_system_gpu_context_dispose(void *context)
void WM_event_timer_free_data(wmTimer *timer)
void WM_event_timer_sleep(wmWindowManager *wm, wmWindow *, wmTimer *timer, bool do_sleep)
void WM_window_set_active_screen(wmWindow *win, WorkSpace *workspace, bScreen *screen)
WorkSpace * WM_windows_workspace_get_from_screen(const wmWindowManager *wm, const bScreen *screen)
wmTimer * WM_event_timer_add_notifier(wmWindowManager *wm, wmWindow *win, const uint type, const double time_step)
void WM_system_gpu_context_activate(void *context)
void WM_event_timer_remove_notifier(wmWindowManager *wm, wmWindow *win, wmTimer *timer)
wmTimer * WM_event_timer_add(wmWindowManager *wm, wmWindow *win, const wmEventType event_type, const double time_step)
bool WM_window_is_temp_screen(const wmWindow *win)
void WM_window_set_active_layout(wmWindow *win, WorkSpace *workspace, WorkSpaceLayout *layout)
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)
void WM_event_timer_remove(wmWindowManager *wm, wmWindow *, wmTimer *timer)
WorkSpace * WM_window_get_active_workspace(const wmWindow *win)
void WM_system_gpu_context_release(void *context)
bScreen * WM_window_get_active_screen(const wmWindow *win)
uint8_t flag
Definition wm_window.cc:145
bool WM_xr_action_state_get(const wmXrData *xr, const char *action_set_name, const char *action_name, const char *subaction_path, wmXrActionState *r_state)
bool WM_xr_action_binding_create(wmXrData *xr, const char *action_set_name, const char *action_name, const char *profile_path, const ListBase *user_paths, const ListBase *component_paths, const float *float_thresholds, const eXrAxisFlag *axis_flags, const wmXrPose *poses)
void WM_xr_action_destroy(wmXrData *xr, const char *action_set_name, const char *action_name)
void WM_xr_haptic_action_stop(wmXrData *xr, const char *action_set_name, const char *action_name, const char *subaction_path)
bool WM_xr_action_set_create(wmXrData *xr, const char *action_set_name)
void WM_xr_action_binding_destroy(wmXrData *xr, const char *action_set_name, const char *action_name, const char *profile_path)
bool WM_xr_action_create(wmXrData *xr, const char *action_set_name, const char *action_name, eXrActionType type, const ListBase *user_paths, wmOperatorType *ot, IDProperty *op_properties, const char *haptic_name, const int64_t *haptic_duration, const float *haptic_frequency, const float *haptic_amplitude, eXrOpFlag op_flag, eXrActionFlag action_flag, eXrHapticFlag haptic_flag)
void WM_xr_action_set_destroy(wmXrData *xr, const char *action_set_name)
bool WM_xr_controller_pose_actions_set(wmXrData *xr, const char *action_set_name, const char *grip_action_name, const char *aim_action_name)
bool WM_xr_haptic_action_apply(wmXrData *xr, const char *action_set_name, const char *action_name, const char *subaction_path, const int64_t *duration, const float *frequency, const float *amplitude)
bool WM_xr_active_action_set_set(wmXrData *xr, const char *action_set_name, bool delayed)
short WM_xr_actionmap_active_index_get(const wmXrRuntimeData *runtime)
XrActionMapItem * WM_xr_actionmap_item_find(XrActionMap *actionmap, const char *name)
void WM_xr_actionmap_ensure_unique(wmXrRuntimeData *runtime, XrActionMap *actionmap)
XrActionMap * WM_xr_actionmap_find(wmXrRuntimeData *runtime, const char *name)
XrActionMapItem * WM_xr_actionmap_item_add_copy(XrActionMap *actionmap, XrActionMapItem *ami_src)
XrActionMapItem * WM_xr_actionmap_item_new(XrActionMap *actionmap, const char *name, bool replace_existing)
void WM_xr_actionmap_selected_index_set(wmXrRuntimeData *runtime, short idx)
XrActionMapBinding * WM_xr_actionmap_binding_add_copy(XrActionMapItem *ami, XrActionMapBinding *amb_src)
XrActionMapBinding * WM_xr_actionmap_binding_new(XrActionMapItem *ami, const char *name, bool replace_existing)
XrActionMapBinding * WM_xr_actionmap_binding_find(XrActionMapItem *ami, const char *name)
void WM_xr_actionmap_active_index_set(wmXrRuntimeData *runtime, short idx)
void WM_xr_actionmaps_clear(wmXrRuntimeData *runtime)
short WM_xr_actionmap_selected_index_get(const wmXrRuntimeData *runtime)
void WM_xr_actionmap_item_ensure_unique(XrActionMap *actionmap, XrActionMapItem *ami)
XrActionMap * WM_xr_actionmap_new(wmXrRuntimeData *runtime, const char *name, bool replace_existing)
bool WM_xr_actionmap_binding_remove(XrActionMapItem *ami, XrActionMapBinding *amb)
ListBase * WM_xr_actionmaps_get(wmXrRuntimeData *runtime)
void WM_xr_actionmap_binding_ensure_unique(XrActionMapItem *ami, XrActionMapBinding *amb)
XrActionMap * WM_xr_actionmap_add_copy(wmXrRuntimeData *runtime, XrActionMap *am_src)
void WM_xr_actionmap_item_properties_update_ot(XrActionMapItem *ami)
void WM_xr_actionmap_clear(XrActionMap *actionmap)
bool WM_xr_actionmap_remove(wmXrRuntimeData *runtime, XrActionMap *actionmap)
bool WM_xr_actionmap_item_remove(XrActionMap *actionmap, XrActionMapItem *ami)
void WM_xr_session_state_vignette_activate(wmXrData *xr)
void WM_xr_session_state_nav_scale_set(wmXrData *xr, float scale)
ScrArea * WM_xr_session_area_get(const wmXrData *xr)
wmXrSessionState * WM_xr_session_state_handle_get(const wmXrData *xr)
void WM_xr_session_base_pose_reset(wmXrData *xr)
bool WM_xr_session_state_nav_scale_get(const wmXrData *xr, float *r_scale)
bool WM_xr_session_state_controller_aim_location_get(const wmXrData *xr, uint subaction_idx, float r_location[3])
void WM_xr_session_state_navigation_reset(wmXrSessionState *state)
bool WM_xr_session_state_controller_aim_rotation_get(const wmXrData *xr, uint subaction_idx, float r_rotation[4])
void WM_xr_session_state_vignette_reset(wmXrSessionState *state)
void WM_xr_session_state_vignette_update(wmXrSessionState *state)
bool WM_xr_session_state_nav_location_get(const wmXrData *xr, float r_location[3])
void WM_xr_session_state_nav_location_set(wmXrData *xr, const float location[3])
bool WM_xr_session_state_viewer_pose_matrix_info_get(const wmXrData *xr, float r_viewmat[4][4], float *r_focal_len)
bool WM_xr_session_is_ready(const wmXrData *xr)
bool WM_xr_session_state_viewer_pose_location_get(const wmXrData *xr, float r_location[3])
bool WM_xr_session_exists(const wmXrData *xr)
ARegionType * WM_xr_surface_controller_region_type_get()
bool WM_xr_session_state_controller_grip_location_get(const wmXrData *xr, uint subaction_idx, float r_location[3])
bool WM_xr_session_state_controller_grip_rotation_get(const wmXrData *xr, uint subaction_idx, float r_rotation[4])
void WM_xr_session_state_nav_rotation_set(wmXrData *xr, const float rotation[4])
bool WM_xr_session_state_viewer_pose_rotation_get(const wmXrData *xr, float r_rotation[4])
bool WM_xr_session_state_nav_rotation_get(const wmXrData *xr, float r_rotation[4])