Blender V4.5
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;
60struct wmJobWorkerStatus;
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);
106void WM_init_native_pixels(bool do_it);
108
113void WM_init(bContext *C, int argc, const char **argv);
129void WM_exit_ex(bContext *C, bool do_python_exit, bool do_user_exit_actions);
130
142void WM_exit(bContext *C, int exit_code) ATTR_NORETURN;
143
145
156
157void WM_init_gpu();
158
164const char *WM_ghost_backend();
165
208
209
216
217void WM_check(bContext *C);
218void WM_reinit_gizmomap_all(Main *bmain);
219
225
227 const int event_xy[2],
228 int r_event_xy_other[2]);
229
235
240bool WM_desktop_cursor_sample_read(float r_col[3]);
241
254 const wmWindow *win,
255 int r_size[2]);
258 const wmWindow *win,
259 const int pos[2],
260 float r_col[3]);
261
272 wmWindow *win,
273 const int pos[2],
274 float r_col[3]);
275
281uint8_t *WM_window_pixels_read(bContext *C, wmWindow *win, int r_size[2]);
287bool WM_window_pixels_read_sample(bContext *C, wmWindow *win, const int pos[2], float r_col[3]);
288
294int WM_window_native_pixel_x(const wmWindow *win);
295int WM_window_native_pixel_y(const wmWindow *win);
296
298
299void WM_window_native_pixel_coords(const wmWindow *win, int *x, int *y);
303void WM_window_rect_calc(const wmWindow *win, rcti *r_rect);
308void WM_window_screen_rect_calc(const wmWindow *win, rcti *r_rect);
310bool WM_window_is_fullscreen(const wmWindow *win);
311bool WM_window_is_maximized(const wmWindow *win);
312
318void WM_windows_scene_data_sync(const ListBase *win_lb, Scene *scene) ATTR_NONNULL();
325
330void WM_window_set_active_scene(Main *bmain, bContext *C, wmWindow *win, Scene *scene)
331 ATTR_NONNULL();
335 ATTR_NONNULL(1);
339 ATTR_NONNULL(1);
344void WM_window_set_active_screen(wmWindow *win, WorkSpace *workspace, bScreen *screen)
345 ATTR_NONNULL(1);
346
351
353
355void WM_system_gpu_context_dispose(void *context);
356void WM_system_gpu_context_activate(void *context);
357void WM_system_gpu_context_release(void *context);
358
365
380 const char *title,
381 const rcti *rect_unscaled,
382 int space_type,
383 bool toplevel,
384 bool dialog,
385 bool temp,
386 eWindowAlignment alignment,
387 void (*area_setup_fn)(bScreen *screen, ScrArea *area, void *user_data),
388 void *area_setup_user_data) ATTR_NONNULL(1, 3);
389
390void WM_window_set_dpi(const wmWindow *win);
391
396void WM_window_title(wmWindowManager *wm, wmWindow *win, const char *title = nullptr);
397
398bool WM_stereo3d_enabled(wmWindow *win, bool skip_stereo3d_check);
399
400/* Window Decoration Styles. */
401
414
415
433void WM_window_decoration_style_apply(const wmWindow *win, const bScreen *screen = nullptr);
434
435/* `wm_files.cc`. */
436
437void WM_file_autoexec_init(const char *filepath);
445 const char *filepath,
446 const bool use_scripts_autoexec_check,
450 const bool use_scripts_autoexec_check,
453
459 Scene *scene,
460 ViewLayer *view_layer,
461 View3D *v3d,
462 const char *filepath,
463 short id_code,
464 const char *id_name,
465 int flag);
471 Scene *scene,
472 ViewLayer *view_layer,
473 View3D *v3d,
474 const char *filepath,
475 short id_code,
476 const char *id_name,
477 int flag);
479
480/* Mouse cursors. */
481
482void WM_cursor_set(wmWindow *win, int curs);
483bool WM_cursor_set_from_tool(wmWindow *win, const ScrArea *area, const ARegion *region);
484void WM_cursor_modal_set(wmWindow *win, int val);
489void WM_cursor_wait(bool val);
502 const rcti *wrap_region,
503 bool hide);
504void WM_cursor_grab_disable(wmWindow *win, const int mouse_ungrab_xy[2]);
508void WM_cursor_time(wmWindow *win, int nr);
509
511 short region_type,
512 bool (*poll)(bContext *C),
514 void *customdata);
515
517void WM_paint_cursor_remove_by_type(wmWindowManager *wm, void *draw_fn, void (*free)(void *));
519
526void WM_cursor_warp(wmWindow *win, int x, int y);
527
531#define WM_CURSOR_DEFAULT_LOGICAL_SIZE 24
532
538
539/* Handlers. */
540
546
547 /* Internal. */
550};
552
553using EventHandlerPoll = bool (*)(const wmWindow *win,
554 const ScrArea *area,
555 const ARegion *region,
556 const wmEvent *event);
559 wmKeyMap *keymap,
560 EventHandlerPoll poll);
561
568 const ScrArea *area,
569 const ARegion *region,
570 const wmEvent *event);
577 const ScrArea *area,
578 const ARegion *region,
579 const wmEvent *event);
580
588 const ScrArea *area,
589 const ARegion *region,
590 const wmEvent *event);
591
597 wmKeyMap *keymap,
598 int priority);
599
604
606 wmWindow *win,
607 wmEventHandler_Keymap *handler,
608 wmEventHandler_KeymapResult *km_result);
609
611 wmWindow *win,
612 wmEventHandler_Keymap *handler,
613 wmEventHandler_KeymapResult *km_result);
615 wmWindow *win,
616 wmEventHandler_Keymap *handler,
617 wmEventHandler_KeymapResult *km_result);
618
620 ListBase *handlers, wmEventHandler_KeymapDynamicFn keymap_fn, void *user_data);
621
622void WM_event_remove_keymap_handler(ListBase *handlers, wmKeyMap *keymap);
623
625 void(keymap_tag)(wmKeyMap *keymap,
626 wmKeyMapItem *kmi,
627 void *user_data),
628 void *user_data);
630 wmWindow *win,
631 wmEventHandler_Keymap *handler,
632 wmEventHandler_KeymapResult *km_result);
633
635
637 bContext *C, wmWindowManager *wm, wmWindow *win, ListBase *handlers, const wmEvent *event);
638
639bool WM_event_match(const wmEvent *winevent, const wmKeyMapItem *kmi);
640
641using wmUIHandlerFunc = int (*)(bContext *C, const wmEvent *event, void *userdata);
642using wmUIHandlerRemoveFunc = void (*)(bContext *C, void *userdata);
643
645 ListBase *handlers,
646 wmUIHandlerFunc handle_fn,
647 wmUIHandlerRemoveFunc remove_fn,
648 void *user_data,
650
655
661 wmUIHandlerFunc handle_fn,
662 wmUIHandlerRemoveFunc remove_fn,
663 void *user_data,
664 bool postpone);
665void WM_event_remove_area_handler(ListBase *handlers, void *area);
667 ListBase *handlers,
668 wmUIHandlerFunc handle_fn,
669 wmUIHandlerRemoveFunc remove_fn);
670
675 ScrArea *area,
676 ARegion *region,
677 wmOperator *op) ATTR_NONNULL(1, 4);
679void WM_event_remove_model_handler(ListBase *handlers, const wmOperator *op, bool postpone)
680 ATTR_NONNULL(1, 2);
681
682void WM_event_remove_modal_handler_all(const wmOperator *op, bool postpone) ATTR_NONNULL(1);
683
689 const ScrArea *old_area,
690 ScrArea *new_area);
696 const ARegion *old_region,
697 ARegion *new_region);
699 const ARegion *old_region,
700 ARegion *new_region);
701
706
708
709/* Mouse. */
711
712#ifdef WITH_INPUT_NDOF
713/* 3D mouse. */
714void WM_ndof_deadzone_set(float deadzone);
715#endif
716/* Notifiers. */
718 const wmWindow *win,
719 unsigned int type,
720 void *reference);
721void WM_event_add_notifier(const bContext *C, unsigned int type, void *reference);
722void WM_main_add_notifier(unsigned int type, void *reference);
726void WM_main_remove_notifier_reference(const void *reference);
728
729/* Reports. */
730
739void WM_report_banners_cancel(Main *bmain);
755
769void WM_global_report(eReportType type, const char *message);
778void WM_global_reportf(eReportType type, const char *format, ...) ATTR_PRINTF_FORMAT(2, 3);
779
780wmEvent *WM_event_add(wmWindow *win, const wmEvent *event_to_add) ATTR_NONNULL(1, 2);
781
783
788 wmWindow *win,
789 wmEventType event_type,
790 double time_step);
792 wmWindow *win,
793 unsigned int type,
794 double time_step);
795
804
814void WM_event_timer_sleep(wmWindowManager *wm, wmWindow *win, wmTimer *timer, bool do_sleep);
815
816/* Operator API, default callbacks. */
817
844void WM_menu_name_call(bContext *C, const char *menu_name, short context);
845
847
853
858 wmOperator *op,
859 const char *title = nullptr,
860 const char *message = nullptr,
861 const char *confirm_text = nullptr,
862 int icon = 0, /* ALERT_ICON_WARNING. */
863 bool cancel_default = false);
864
881 wmOperator *op,
882 const wmEvent *event);
883
885 bContext *C,
886 wmOperator *op,
887 const wmEvent *event,
888 std::optional<std::string> title = std::nullopt,
889 std::optional<std::string> confirm_text = std::nullopt,
890 bool cancel_default = false);
891
899
901 bContext *C,
902 wmOperator *op,
903 int width,
904 std::optional<std::string> title = std::nullopt,
905 std::optional<std::string> confirm_text = std::nullopt,
906 bool cancel_default = false);
907
910
915 wmOperator *op,
916 const char *title,
917 int icon,
918 const char *message,
919 wmOperatorCallContext opcontext);
921
922/* Operator API. */
923
940
942bool WM_operator_poll_context(bContext *C, wmOperatorType *ot, short context);
971bool WM_operator_is_repeat(const bContext *C, const wmOperator *op);
972
973bool WM_operator_name_poll(bContext *C, const char *opstring);
985 wmOperatorCallContext context,
986 PointerRNA *properties,
987 const wmEvent *event);
990 const char *opstring,
991 wmOperatorCallContext context,
992 PointerRNA *properties,
993 const wmEvent *event);
995 const char *opstring,
996 wmOperatorCallContext context,
997 IDProperty *properties,
998 const wmEvent *event);
1008 wmOperatorCallContext context,
1009 PointerRNA *properties,
1011 bool is_undo);
1012
1015 wmOperatorCallContext opcontext,
1016 PointerRNA *properties,
1017 const wmEvent *event,
1018 blender::StringRef drawstr);
1019
1023void WM_operator_properties_alloc(PointerRNA **ptr, IDProperty **properties, const char *opstring);
1024
1028void WM_operator_properties_sanitize(PointerRNA *ptr, bool no_context);
1029
1043void WM_operator_properties_create(PointerRNA *ptr, const char *opstring);
1047
1052bool WM_operator_check_ui_enabled(const bContext *C, const char *idname);
1053
1061ID *WM_operator_drop_load_path(bContext *C, wmOperator *op, short idcode);
1062
1065
1066/* `wm_operator_props.cc` */
1067
1069
1081
1082
1087
1092 int filter,
1093 short type,
1094 eFileSel_Action action,
1096 short display,
1097 short sort);
1098
1114 PointerRNA *ptr,
1115 enum ID_Type type);
1131void WM_operator_properties_id_lookup(wmOperatorType *ot, const bool add_name_prop);
1132
1145void WM_operator_properties_gesture_box_ex(wmOperatorType *ot, bool deselect, bool extend);
1170void WM_operator_properties_select_action(wmOperatorType *ot, int default_action, bool hide_gui);
1175 int default_action,
1176 bool hide_gui);
1215
1222
1225void WM_operator_properties_checker_interval(wmOperatorType *ot, bool nth_can_disable);
1227 CheckerIntervalParams *op_params);
1229 int depth);
1230
1243 wmOperator *op,
1244 bool all_args,
1245 bool macro_args,
1247 PointerRNA *opptr);
1248std::string WM_operator_pystring(bContext *C, wmOperator *op, bool all_args, bool macro_args);
1249
1250std::string WM_operator_pystring_abbreviate(std::string str, int str_len_max);
1251
1252std::optional<std::string> WM_prop_pystring_assign(bContext *C,
1253 PointerRNA *ptr,
1254 PropertyRNA *prop,
1255 int index);
1260size_t WM_operator_bl_idname(char *dst, const char *src) ATTR_NONNULL(1, 2);
1265size_t WM_operator_py_idname(char *dst, const char *src) ATTR_NONNULL(1, 2);
1271 const char *classname,
1272 const char *idname);
1276bool WM_operator_bl_idname_is_valid(const char *idname);
1277
1281std::optional<std::string> WM_context_path_resolve_property_full(const bContext *C,
1282 const PointerRNA *ptr,
1283 PropertyRNA *prop,
1284 int index);
1285std::optional<std::string> WM_context_path_resolve_full(bContext *C, const PointerRNA *ptr);
1286
1287/* `wm_operator_type.cc` */
1288
1289wmOperatorType *WM_operatortype_find(const char *idname, bool quiet);
1291void WM_operatortype_append(void (*opfunc)(wmOperatorType *ot));
1292void WM_operatortype_append_ptr(void (*opfunc)(wmOperatorType *ot, void *userdata),
1293 void *userdata);
1294void WM_operatortype_append_macro_ptr(void (*opfunc)(wmOperatorType *ot, void *userdata),
1295 void *userdata);
1300bool WM_operatortype_remove(const char *idname);
1305
1307 const bContext *C,
1308 PointerRNA *ptr,
1309 PropertyRNA *prop,
1310 const char *edit_text,
1312
1335
1336#define WM_operatortype_prop_tag(property, tags) \
1337 { \
1338 CHECK_TYPE(tags, eOperatorPropTags); \
1339 RNA_def_property_tags(prop, tags); \
1340 } \
1341 (void)0
1342
1347 const char *name,
1348 const char *description,
1349 int flag);
1351
1352std::string WM_operatortype_name(wmOperatorType *ot, PointerRNA *properties);
1359 PointerRNA *properties);
1360
1363
1364/* `wm_operator_utils.cc` */
1365
1371
1372/* `wm_uilist_type.cc` */
1373
1377void WM_uilisttype_init();
1379bool WM_uilisttype_add(uiListType *ult);
1380void WM_uilisttype_remove_ptr(Main *bmain, uiListType *ult);
1381void WM_uilisttype_free();
1382
1394 const char *list_id,
1395 char r_full_list_id[]);
1401const char *WM_uilisttype_list_id_get(const uiListType *ult, uiList *list);
1402
1403/* `wm_menu_type.cc` */
1404
1408void WM_menutype_init();
1409MenuType *WM_menutype_find(blender::StringRef idname, bool quiet);
1411bool WM_menutype_add(MenuType *mt);
1413void WM_menutype_free();
1415
1417 const bContext *C,
1418 PointerRNA *ptr,
1419 PropertyRNA *prop,
1420 const char *edit_text,
1422
1423/* `wm_panel_type.cc` */
1424
1428void WM_paneltype_init();
1429void WM_paneltype_clear();
1431bool WM_paneltype_add(PanelType *pt);
1433
1435 const bContext *C,
1436 PointerRNA *ptr,
1437 PropertyRNA *prop,
1438 const char *edit_text,
1440
1441/* `wm_gesture_ops.cc` */
1442
1462
1469 wmOperator *op,
1470 const wmEvent *event);
1485 wmOperator *op,
1486 const wmEvent *event);
1488
1489/* Gesture manager API. */
1490
1494wmGesture *WM_gesture_new(wmWindow *window, const ARegion *region, const wmEvent *event, int type);
1495void WM_gesture_end(wmWindow *win, wmGesture *gesture);
1496void WM_gestures_remove(wmWindow *win);
1498bool WM_gesture_is_modal_first(const wmGesture *gesture);
1499
1500/* File-selecting support. */
1501
1509void WM_event_fileselect_event(wmWindowManager *wm, void *ophandle, int eventval);
1510
1511/* Event consecutive data. */
1512
1514void *WM_event_consecutive_data_get(wmWindow *win, const char *id);
1516void WM_event_consecutive_data_set(wmWindow *win, const char *id, void *custom_data);
1519
1526
1550 const wmEvent *event);
1551
1552/* Drag and drop. */
1553
1559 bContext *C, int icon, eWM_DragDataType type, void *poin, unsigned int flags);
1568 bContext *C, int icon, eWM_DragDataType type, void *poin, unsigned int flags);
1573void WM_event_drag_image(wmDrag *drag, const ImBuf *imb, float scale);
1579void WM_event_drag_preview_icon(wmDrag *drag, int icon_id);
1580void WM_drag_free(wmDrag *drag);
1581void WM_drag_data_free(eWM_DragDataType dragtype, void *poin);
1582void WM_drag_free_list(ListBase *lb);
1584 const char *idname,
1585 bool (*poll)(bContext *C, wmDrag *drag, const wmEvent *event),
1586 void (*copy)(bContext *C, wmDrag *drag, wmDropBox *drop),
1587 void (*cancel)(Main *bmain, wmDrag *drag, wmDropBox *drop),
1588 WMDropboxTooltipFunc tooltip);
1593
1594void WM_drag_draw_item_name_fn(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2]);
1595void WM_drag_draw_default_fn(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2]);
1599ListBase *WM_dropboxmap_find(const char *idname, int spaceid, int regionid);
1600
1601/* ID drag and drop. */
1602
1606ID *WM_drag_asset_id_import(const bContext *C, wmDragAsset *asset_drag, int flag_extra);
1608void WM_drag_add_local_ID(wmDrag *drag, ID *id, ID *from_parent);
1609ID *WM_drag_get_local_ID(const wmDrag *drag, short idcode);
1610ID *WM_drag_get_local_ID_from_event(const wmEvent *event, short idcode);
1614bool WM_drag_is_ID_type(const wmDrag *drag, int idcode);
1615
1620 const AssetImportSettings &import_settings);
1621
1622wmDragAsset *WM_drag_get_asset_data(const wmDrag *drag, int idcode);
1623AssetMetaData *WM_drag_get_asset_meta_data(const wmDrag *drag, int idcode);
1631ID *WM_drag_get_local_ID_or_import_from_asset(const bContext *C, const wmDrag *drag, int idcode);
1632
1641void WM_drag_free_imported_drag_ID(Main *bmain, wmDrag *drag, wmDropBox *drop);
1642
1644
1650
1651const ListBase *WM_drag_asset_list_get(const wmDrag *drag);
1652
1653const char *WM_drag_get_item_name(wmDrag *drag);
1654
1655/* Paths drag and drop. */
1664const char *WM_drag_get_single_path(const wmDrag *drag);
1672const char *WM_drag_get_single_path(const wmDrag *drag, int file_type);
1680bool WM_drag_has_path_file_type(const wmDrag *drag, int file_type);
1686int /*eFileSel_File_Types*/ WM_drag_get_path_file_type(const wmDrag *drag);
1687
1688const std::string &WM_drag_get_string(const wmDrag *drag);
1689std::string WM_drag_get_string_firstline(const wmDrag *drag);
1690
1691/* Set OpenGL viewport and scissor. */
1692void wmViewport(const rcti *winrct);
1693void wmPartialViewport(rcti *drawrct, const rcti *winrct, const rcti *partialrct);
1694void wmWindowViewport(const wmWindow *win);
1695void wmWindowViewport_ex(const wmWindow *win, float offset);
1696
1697/* OpenGL utilities with safety check. */
1698void wmOrtho2(float x1, float x2, float y1, float y2);
1699/* Use for conventions (avoid hard-coded offsets all over). */
1700
1704void wmOrtho2_region_pixelspace(const ARegion *region);
1705void wmOrtho2_pixelspace(float x, float y);
1706void wmGetProjectionMatrix(float mat[4][4], const rcti *winrct);
1707
1708/* Threaded Jobs Manager. */
1717};
1719
1765
1773 wmWindow *win,
1774 const void *owner,
1775 const char *name,
1777 eWM_JobType job_type);
1778
1782bool WM_jobs_test(const wmWindowManager *wm, const void *owner, int job_type);
1783float WM_jobs_progress(const wmWindowManager *wm, const void *owner);
1784const char *WM_jobs_name(const wmWindowManager *wm, const void *owner);
1788double WM_jobs_starttime(const wmWindowManager *wm, const void *owner);
1789void *WM_jobs_customdata_from_type(wmWindowManager *wm, const void *owner, int job_type);
1790
1791bool WM_jobs_is_running(const wmJob *wm_job);
1792bool WM_jobs_is_stopped(const wmWindowManager *wm, const void *owner);
1793void *WM_jobs_customdata_get(wmJob *wm_job);
1794void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void (*free)(void *));
1795void WM_jobs_timer(wmJob *wm_job, double time_step, unsigned int note, unsigned int endnote);
1796void WM_jobs_delay_start(wmJob *wm_job, double delay_time);
1797
1798using wm_jobs_start_callback = void (*)(void *custom_data, wmJobWorkerStatus *worker_status);
1799void WM_jobs_callbacks(wmJob *wm_job,
1800 wm_jobs_start_callback startjob,
1801 void (*initjob)(void *),
1802 void (*update)(void *),
1803 void (*endjob)(void *));
1804
1805void WM_jobs_callbacks_ex(wmJob *wm_job,
1806 wm_jobs_start_callback startjob,
1807 void (*initjob)(void *),
1808 void (*update)(void *),
1809 void (*endjob)(void *),
1810 void (*completed)(void *),
1811 void (*canceled)(void *));
1812
1826void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job);
1833void WM_jobs_stop_type(wmWindowManager *wm, const void *owner, eWM_JobType job_type);
1840void WM_jobs_stop_all_from_owner(wmWindowManager *wm, const void *owner) ATTR_NONNULL();
1848void WM_jobs_kill_all_except(wmWindowManager *wm, const void *owner);
1854void WM_jobs_kill_type(wmWindowManager *wm, const void *owner, int job_type);
1861void WM_jobs_kill_all_from_owner(wmWindowManager *wm, const void *owner) ATTR_NONNULL();
1862
1863bool WM_jobs_has_running(const wmWindowManager *wm);
1864bool WM_jobs_has_running_type(const wmWindowManager *wm, int job_type);
1865
1868
1869/* Clipboard. */
1870
1876char *WM_clipboard_text_get(bool selection, bool ensure_utf8, int *r_len);
1880char *WM_clipboard_text_get_firstline(bool selection, bool ensure_utf8, int *r_len);
1881
1882void WM_clipboard_text_set(const char *buf, bool selection);
1883
1888
1894
1901
1902/* Progress. */
1903
1904void WM_progress_set(wmWindow *win, float progress);
1905void WM_progress_clear(wmWindow *win);
1906
1907/* Draw (for screenshot). */
1908
1909void *WM_draw_cb_activate(wmWindow *win,
1910 void (*draw)(const wmWindow *win, void *customdata),
1911 void *customdata);
1912void WM_draw_cb_exit(wmWindow *win, void *handle);
1924
1925void WM_draw_region_viewport_ensure(Scene *scene, ARegion *region, short space_type);
1928
1929/* Region drawing. */
1930
1931void WM_draw_region_free(ARegion *region);
1934
1935void WM_main_playanim(int argc, const char **argv);
1936
1941bool write_crash_blend();
1942
1945void WM_autosave_write(wmWindowManager *wm, Main *bmain);
1946
1952void WM_set_locked_interface_with_flags(wmWindowManager *wm, short lock_flags);
1953
1955
1959wmEvent *WM_event_add_simulate(wmWindow *win, const wmEvent *event_to_add);
1960
1961const char *WM_window_cursor_keymap_status_get(const wmWindow *win,
1962 int button_index,
1963 int type_index);
1965
1973
1974/* `wm_event_query.cc` */
1975
1979void WM_event_print(const wmEvent *event);
1980
1984bool WM_event_is_modal_drag_exit(const wmEvent *event,
1985 short init_event_type,
1986 short init_event_val);
1987bool WM_event_is_mouse_drag(const wmEvent *event);
1988bool WM_event_is_mouse_drag_or_press(const wmEvent *event);
1989int WM_event_drag_direction(const wmEvent *event);
1991
2007
2018bool WM_event_consecutive_gesture_test_break(const wmWindow *win, const wmEvent *event);
2019
2020int WM_event_drag_threshold(const wmEvent *event);
2021bool WM_event_drag_test(const wmEvent *event, const int prev_xy[2]);
2022bool WM_event_drag_test_with_delta(const wmEvent *event, const int drag_delta[2]);
2023void WM_event_drag_start_mval(const wmEvent *event, const ARegion *region, int r_mval[2]);
2024void WM_event_drag_start_mval_fl(const wmEvent *event, const ARegion *region, float r_mval[2]);
2025void WM_event_drag_start_xy(const wmEvent *event, int r_xy[2]);
2026
2030int WM_userdef_event_map(int kmitype);
2037
2038#ifdef WITH_INPUT_NDOF
2039blender::float3 WM_event_ndof_translation_get_for_navigation(const wmNDOFMotionData &ndof);
2040blender::float3 WM_event_ndof_rotation_get_for_navigation(const wmNDOFMotionData &ndof);
2041float WM_event_ndof_rotation_get_axis_angle_for_navigation(const wmNDOFMotionData &ndof,
2042 float axis[3]);
2043
2044blender::float3 WM_event_ndof_translation_get(const wmNDOFMotionData &ndof);
2045blender::float3 WM_event_ndof_rotation_get(const wmNDOFMotionData &ndof);
2046float WM_event_ndof_rotation_get_axis_angle(const wmNDOFMotionData &ndof, float axis[3]);
2047
2048bool WM_event_ndof_translation_has_pan(const wmNDOFMotionData &ndof);
2049bool WM_event_ndof_translation_has_zoom(const wmNDOFMotionData &ndof);
2050
2051#endif /* WITH_INPUT_NDOF */
2052
2053#ifdef WITH_XR_OPENXR
2054bool WM_event_is_xr(const wmEvent *event);
2055#endif
2056
2061float WM_event_tablet_data(const wmEvent *event, bool *r_pen_flip, float r_tilt[2]);
2062bool WM_event_is_tablet(const wmEvent *event);
2063
2064int WM_event_absolute_delta_x(const wmEvent *event);
2065int WM_event_absolute_delta_y(const wmEvent *event);
2066
2067#ifdef WITH_INPUT_IME
2068bool WM_event_is_ime_switch(const wmEvent *event);
2069#endif
2070
2071/* `wm_tooltip.cc` */
2072
2074 ARegion *region,
2075 int *pass,
2076 double *r_pass_delay,
2077 bool *r_exit_on_event);
2078
2080 bContext *C, wmWindow *win, ScrArea *area, ARegion *region, wmTooltipInitFn init);
2082 wmWindow *win,
2083 ScrArea *area,
2084 ARegion *region,
2086 double delay);
2088 bContext *C, wmWindow *win, ScrArea *area, ARegion *region, wmTooltipInitFn init);
2090void WM_tooltip_clear(bContext *C, wmWindow *win);
2091void WM_tooltip_init(bContext *C, wmWindow *win);
2093double WM_tooltip_time_closed();
2094
2095/* `wm_utils.cc` */
2096
2099
2101
2102bool WM_region_use_viewport(ScrArea *area, ARegion *region);
2103
2104/* `wm_platform.cc` */
2105
2109bool WM_platform_associate_set(bool do_register, bool all_users, char **r_error_msg);
2110
2111#ifdef WITH_XR_OPENXR
2112/* `wm_xr_session.cc` */
2113
2118bool WM_xr_session_exists(const wmXrData *xr);
2122bool WM_xr_session_is_ready(const wmXrData *xr);
2126bool WM_xr_session_state_viewer_pose_location_get(const wmXrData *xr, float r_location[3]);
2127bool WM_xr_session_state_viewer_pose_rotation_get(const wmXrData *xr, float r_rotation[4]);
2129 float r_viewmat[4][4],
2130 float *r_focal_len);
2132 unsigned int subaction_idx,
2133 float r_location[3]);
2135 unsigned int subaction_idx,
2136 float r_rotation[4]);
2138 unsigned int subaction_idx,
2139 float r_location[3]);
2141 unsigned int subaction_idx,
2142 float r_rotation[4]);
2143bool WM_xr_session_state_nav_location_get(const wmXrData *xr, float r_location[3]);
2144void WM_xr_session_state_nav_location_set(wmXrData *xr, const float location[3]);
2145bool WM_xr_session_state_nav_rotation_get(const wmXrData *xr, float r_rotation[4]);
2146void WM_xr_session_state_nav_rotation_set(wmXrData *xr, const float rotation[4]);
2147bool WM_xr_session_state_nav_scale_get(const wmXrData *xr, float *r_scale);
2148void WM_xr_session_state_nav_scale_set(wmXrData *xr, float scale);
2150
2152
2153/* `wm_xr_actions.cc`. */
2154
2155/* XR action functions to be called pre-XR session start.
2156 * NOTE: The "destroy" functions can also be called post-session start. */
2157
2158bool WM_xr_action_set_create(wmXrData *xr, const char *action_set_name);
2159void WM_xr_action_set_destroy(wmXrData *xr, const char *action_set_name);
2161 const char *action_set_name,
2162 const char *action_name,
2163 eXrActionType type,
2164 const ListBase *user_paths,
2166 IDProperty *op_properties,
2167 const char *haptic_name,
2168 const int64_t *haptic_duration,
2169 const float *haptic_frequency,
2170 const float *haptic_amplitude,
2171 eXrOpFlag op_flag,
2172 eXrActionFlag action_flag,
2173 eXrHapticFlag haptic_flag);
2174void WM_xr_action_destroy(wmXrData *xr, const char *action_set_name, const char *action_name);
2176 const char *action_set_name,
2177 const char *action_name,
2178 const char *profile_path,
2179 const ListBase *user_paths,
2180 const ListBase *component_paths,
2181 const float *float_thresholds,
2182 const eXrAxisFlag *axis_flags,
2183 const wmXrPose *poses);
2185 const char *action_set_name,
2186 const char *action_name,
2187 const char *profile_path);
2188
2192bool WM_xr_active_action_set_set(wmXrData *xr, const char *action_set_name, bool delayed);
2193
2195 const char *action_set_name,
2196 const char *grip_action_name,
2197 const char *aim_action_name);
2198
2202bool WM_xr_action_state_get(const wmXrData *xr,
2203 const char *action_set_name,
2204 const char *action_name,
2205 const char *subaction_path,
2206 wmXrActionState *r_state);
2208 const char *action_set_name,
2209 const char *action_name,
2210 const char *subaction_path,
2211 const int64_t *duration,
2212 const float *frequency,
2213 const float *amplitude);
2215 const char *action_set_name,
2216 const char *action_name,
2217 const char *subaction_path);
2218
2219/* `wm_xr_actionmap.cc` */
2220
2222 const char *name,
2223 bool replace_existing);
2229bool WM_xr_actionmap_remove(wmXrRuntimeData *runtime, XrActionMap *actionmap);
2230XrActionMap *WM_xr_actionmap_find(wmXrRuntimeData *runtime, const char *name);
2231void WM_xr_actionmap_clear(XrActionMap *actionmap);
2235void WM_xr_actionmap_active_index_set(wmXrRuntimeData *runtime, short idx);
2237void WM_xr_actionmap_selected_index_set(wmXrRuntimeData *runtime, short idx);
2238
2240 const char *name,
2241 bool replace_existing);
2248XrActionMapItem *WM_xr_actionmap_item_find(XrActionMap *actionmap, const char *name);
2254
2256 const char *name,
2257 bool replace_existing);
2263 XrActionMapBinding *amb_src);
2266#endif /* WITH_XR_OPENXR */
#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:2340
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:1697
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:2383
bool WM_autosave_is_scheduled(wmWindowManager *wm)
Definition wm_files.cc:2335
bool WM_file_read(bContext *C, const char *filepath, const bool use_scripts_autoexec_check, ReportList *reports)
Definition wm_files.cc:1046
eFileSel_Flag
Definition WM_api.hh:1071
@ WM_FILESEL_FILES
Definition WM_api.hh:1076
@ WM_FILESEL_DIRECTORY
Definition WM_api.hh:1073
@ WM_FILESEL_RELPATH
Definition WM_api.hh:1072
@ WM_FILESEL_SHOW_PROPS
Definition WM_api.hh:1078
@ WM_FILESEL_FILEPATH
Definition WM_api.hh:1075
@ WM_FILESEL_FILENAME
Definition WM_api.hh:1074
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:1298
void WM_script_tag_reload()
eWM_WindowDecorationStyleFlag WM_window_decoration_style_flags_get(const wmWindow *win)
Definition wm_window.cc:627
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:489
void WM_jobs_timer(wmJob *wm_job, double time_step, unsigned int note, unsigned int endnote)
Definition wm_jobs.cc:353
std::optional< std::string > WM_context_path_resolve_property_full(const bContext *C, const PointerRNA *ptr, PropertyRNA *prop, int index)
void WM_main_playanim(int argc, const char **argv)
bool WM_stereo3d_enabled(wmWindow *win, bool skip_stereo3d_check)
Definition wm_stereo.cc:138
bool WM_jobs_has_running_type(const wmWindowManager *wm, int job_type)
Definition wm_jobs.cc:757
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:360
@ WIN_ALIGN_LOCATION_CENTER
Definition WM_api.hh:362
@ WIN_ALIGN_ABSOLUTE
Definition WM_api.hh:361
@ WIN_ALIGN_PARENT_CENTER
Definition WM_api.hh:363
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:1573
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:318
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:622
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:1451
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:456
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:1344
void WM_event_remove_area_handler(ListBase *handlers, void *area)
void WM_file_tag_modified()
Definition wm_files.cc:174
eWM_JobType
Definition WM_api.hh:1723
@ WM_JOB_TYPE_DPAINT_BAKE
Definition WM_api.hh:1745
@ WM_JOB_TYPE_SEQ_BUILD_PROXY
Definition WM_api.hh:1742
@ WM_JOB_TYPE_SEQ_DRAG_DROP_PREVIEW
Definition WM_api.hh:1758
@ WM_JOB_TYPE_UV_PACK
Definition WM_api.hh:1761
@ WM_JOB_TYPE_CALCULATE_SIMULATION_NODES
Definition WM_api.hh:1759
@ WM_JOB_TYPE_COMPOSITE
Definition WM_api.hh:1727
@ WM_JOB_TYPE_OBJECT_BAKE
Definition WM_api.hh:1735
@ WM_JOB_TYPE_LIGHT_BAKE
Definition WM_api.hh:1752
@ WM_JOB_TYPE_QUADRIFLOW_REMESH
Definition WM_api.hh:1754
@ WM_JOB_TYPE_RENDER_PREVIEW
Definition WM_api.hh:1729
@ WM_JOB_TYPE_POINTCACHE
Definition WM_api.hh:1744
@ WM_JOB_TYPE_FSMENU_BOOKMARK_VALIDATE
Definition WM_api.hh:1753
@ WM_JOB_TYPE_BAKE_GEOMETRY_NODES
Definition WM_api.hh:1760
@ WM_JOB_TYPE_USD_EXPORT
Definition WM_api.hh:1749
@ WM_JOB_TYPE_SEQ_DRAW_THUMBNAIL
Definition WM_api.hh:1757
@ WM_JOB_TYPE_ASSET_LIBRARY_LOAD
Definition WM_api.hh:1737
@ WM_JOB_TYPE_ALEMBIC_EXPORT
Definition WM_api.hh:1747
@ WM_JOB_TYPE_USD_IMPORT
Definition WM_api.hh:1748
@ WM_JOB_TYPE_CLIP_BUILD_PROXY
Definition WM_api.hh:1738
@ WM_JOB_TYPE_TRACE_IMAGE
Definition WM_api.hh:1755
@ WM_JOB_TYPE_CLIP_PREFETCH
Definition WM_api.hh:1741
@ WM_JOB_TYPE_SEQ_BUILD_PREVIEW
Definition WM_api.hh:1743
@ WM_JOB_TYPE_RENDER
Definition WM_api.hh:1728
@ WM_JOB_TYPE_LOAD_PREVIEW
Definition WM_api.hh:1731
@ WM_JOB_TYPE_LINEART
Definition WM_api.hh:1756
@ WM_JOB_TYPE_ALEMBIC_IMPORT
Definition WM_api.hh:1746
@ WM_JOB_TYPE_ANY
Definition WM_api.hh:1725
@ WM_JOB_TYPE_OBJECT_SIM_OCEAN
Definition WM_api.hh:1732
@ WM_JOB_TYPE_STUDIOLIGHT
Definition WM_api.hh:1751
@ WM_JOB_TYPE_CLIP_SOLVE_CAMERA
Definition WM_api.hh:1740
@ WM_JOB_TYPE_FILESEL_READDIR
Definition WM_api.hh:1736
@ WM_JOB_TYPE_CLIP_TRACK_MARKERS
Definition WM_api.hh:1739
@ WM_JOB_TYPE_SHADER_COMPILATION
Definition WM_api.hh:1750
@ WM_JOB_TYPE_OBJECT_SIM_FLUID
Definition WM_api.hh:1733
@ WM_JOB_TYPE_OBJECT_BAKE_TEXTURE
Definition WM_api.hh:1734
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:1686
wmOperatorTypeMacro * WM_operatortype_macro_define(wmOperatorType *ot, const char *idname)
const char * WM_init_state_app_template_get()
Definition wm_files.cc:1199
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:296
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:1661
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:1798
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:190
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:605
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:912
void * WM_draw_cb_activate(wmWindow *win, void(*draw)(const wmWindow *win, void *customdata), void *customdata)
Definition wm_draw.cc:615
int(*)(bContext *C, const wmEvent *event, void *userdata) wmUIHandlerFunc
Definition WM_api.hh:641
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:541
@ WM_HANDLER_BLOCKING
Definition WM_api.hh:543
@ WM_HANDLER_DO_FREE
Definition WM_api.hh:549
@ WM_HANDLER_ACCEPT_DBL_CLICK
Definition WM_api.hh:545
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)
ARegion *(*)(bContext *C, ARegion *region, int *pass, double *r_pass_delay, bool *r_exit_on_event) wmTooltipInitFn
Definition WM_api.hh:2073
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:638
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:598
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:746
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:323
ID * WM_drag_asset_id_import(const bContext *C, wmDragAsset *asset_drag, int flag_extra)
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:1187
void WM_operator_properties_gesture_straightline(wmOperatorType *ot, int cursor)
bool WM_region_use_viewport(ScrArea *area, ARegion *region)
Definition wm_draw.cc:564
void WM_event_start_prepared_drag(bContext *C, wmDrag *drag)
eWM_CapabilitiesFlag
Definition WM_api.hh:166
@ WM_CAPABILITY_PRIMARY_CLIPBOARD
Definition WM_api.hh:187
@ WM_CAPABILITY_WINDOW_POSITION
Definition WM_api.hh:182
@ WM_CAPABILITY_CURSOR_WARP
Definition WM_api.hh:168
@ WM_CAPABILITY_INITIALIZED
Definition WM_api.hh:205
@ WM_CAPABILITY_TRACKPAD_PHYSICAL_DIRECTION
Definition WM_api.hh:199
@ WM_CAPABILITY_WINDOW_DECORATION_STYLES
Definition WM_api.hh:201
@ WM_CAPABILITY_GPU_FRONT_BUFFER_READ
Definition WM_api.hh:191
@ WM_CAPABILITY_KEYBOARD_HYPER_KEY
Definition WM_api.hh:203
@ WM_CAPABILITY_CLIPBOARD_IMAGES
Definition WM_api.hh:193
@ WM_CAPABILITY_DESKTOP_SAMPLE
Definition WM_api.hh:195
@ WM_CAPABILITY_INPUT_IME
Definition WM_api.hh:197
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:329
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)
void WM_set_locked_interface_with_flags(wmWindowManager *wm, short lock_flags)
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:1420
void WM_jobs_kill_all(wmWindowManager *wm)
Definition wm_jobs.cc:577
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:1709
@ WM_JOB_EXCL_RENDER
Definition WM_api.hh:1715
@ WM_JOB_PROGRESS
Definition WM_api.hh:1716
@ WM_JOB_PRIORITY
Definition WM_api.hh:1710
void WM_operator_properties_border(wmOperatorType *ot)
void WM_jobs_delay_start(wmJob *wm_job, double delay_time)
Definition wm_jobs.cc:360
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:244
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:628
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:471
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:285
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:365
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:613
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)
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:374
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)
void wmWindowViewport(const wmWindow *win)
void WM_file_autoexec_init(const char *filepath)
Definition wm_files.cc:638
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:553
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:1083
@ FILE_OPENFILE
Definition WM_api.hh:1084
@ FILE_SAVE
Definition WM_api.hh:1085
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:589
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:1692
bool WM_jobs_test(const wmWindowManager *wm, const void *owner, int job_type)
Definition wm_jobs.cc:224
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:140
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:922
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()
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)
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
wmWindow void WM_window_set_dpi(const wmWindow *win)
Definition wm_window.cc:575
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:337
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:1376
void WM_draw_region_free(ARegion *region)
Definition wm_draw.cc:1643
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:145
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:642
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)
void WM_main(bContext *C) ATTR_NORETURN
Definition wm.cc:626
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:2071
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:641
void * WM_jobs_customdata_from_type(wmWindowManager *wm, const void *owner, int job_type)
Definition wm_jobs.cc:307
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:1468
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)
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_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_set_locked_interface(wmWindowManager *wm, bool lock)
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:3465
void WM_operator_properties_select_action_simple(wmOperatorType *ot, int default_action, bool hide_gui)
void WM_window_decoration_style_apply(const wmWindow *win, const bScreen *screen=nullptr)
Definition wm_window.cc:687
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:1459
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:407
@ WM_WINDOW_DECORATION_STYLE_COLORED_TITLEBAR
Definition WM_api.hh:411
@ WM_WINDOW_DECORATION_STYLE_NONE
Definition WM_api.hh:409
std::string(*)(bContext *C, wmDrag *drag, const int xy[2], wmDropBox *drop) WMDropboxTooltipFunc
Definition WM_types.hh:1280
bool do_update
Definition WM_types.hh:1008
ReportList * reports
Definition WM_types.hh:1025
void(*)(bContext *C, const blender::int2 &xy, const blender::float2 &tilt, void *customdata) wmPaintCursorDraw
Definition WM_types.hh:1190
wmOperatorCallContext
Definition WM_types.hh:236
eWM_DragDataType
Definition WM_types.hh:1197
float progress
Definition WM_types.hh:1019
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
std::string id_name(void *id)
#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:71
static void init(bNodeTree *, bNode *node)
static void copy(bNodeTree *dest_ntree, bNode *dest_node, const bNode *src_node)
The meta-data of an asset. By creating and giving this for a data-block (ID.asset_data),...
Definition DNA_ID.h:404
Wrapper for bScreen.
wmTimer * timer
static DynamicLibrary lib
void WM_operator_stack_clear(wmWindowManager *wm)
Definition wm.cc:374
void WM_operator_type_set(wmOperator *op, wmOperatorType *ot)
Definition wm.cc:321
void WM_operator_handlers_clear(wmWindowManager *wm, wmOperatorType *ot)
Definition wm.cc:383
void WM_operator_free_all_after(wmWindowManager *wm, wmOperator *op)
Definition wm.cc:310
void WM_operator_free(wmOperator *op)
Definition wm.cc:275
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:174
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_py(bContext *C, wmOperatorType *ot, wmOperatorCallContext context, PointerRNA *properties, ReportList *reports, const bool is_undo)
bool WM_operator_poll_context(bContext *C, wmOperatorType *ot, short context)
wmOperatorStatus WM_operator_call_notest(bContext *C, wmOperator *op)
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)
void WM_menu_name_call(bContext *C, const char *menu_name, short context)
bool WM_operator_ui_poll(wmOperatorType *ot, PointerRNA *ptr)
bool WM_operator_poll(bContext *C, wmOperatorType *ot)
bool WM_operator_repeat_check(const bContext *, wmOperator *op)
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_name_call_ptr(bContext *C, wmOperatorType *ot, wmOperatorCallContext context, PointerRNA *properties, const wmEvent *event)
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)
wmOperatorStatus WM_operator_name_call(bContext *C, const char *opstring, wmOperatorCallContext context, PointerRNA *properties, const wmEvent *event)
wmEventHandler_Keymap * WM_event_add_keymap_handler_v2d_mask(ListBase *handlers, wmKeyMap *keymap)
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)
void WM_operator_name_call_ptr_with_depends_on_cursor(bContext *C, wmOperatorType *ot, wmOperatorCallContext opcontext, PointerRNA *properties, const wmEvent *event, const StringRef drawstr)
wmOperatorStatus WM_operator_name_call_with_properties(bContext *C, const char *opstring, wmOperatorCallContext context, IDProperty *properties, const wmEvent *event)
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:4227
char app_template[64]
Definition wm_files.cc:1183
wmOperatorType * ot
Definition wm_files.cc:4226
void WM_operator_properties_confirm_or_exec(wmOperatorType *ot)
wmOperatorStatus WM_operator_redo_popup(bContext *C, wmOperator *op)
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)
wmOperatorStatus WM_operator_confirm_message_ex(bContext *C, wmOperator *op, const char *title, const int icon, const char *message, const wmOperatorCallContext)
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 *)
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)
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_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)
wmOperatorStatus WM_menu_invoke_ex(bContext *C, wmOperator *op, wmOperatorCallContext opcontext)
void WM_operator_properties_free(PointerRNA *ptr)
ID * WM_operator_drop_load_path(bContext *C, wmOperator *op, const short idcode)
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()
void WM_event_timers_free_all(wmWindowManager *wm)
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:139
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_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])
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])