Blender V5.0
wm_event_system.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
8
9#pragma once
10
11#include "WM_api.hh"
12
13struct ARegion;
14struct bToolRef;
15struct GHOST_TabletData;
16struct ScrArea;
17struct wmEvent;
18struct wmKeyMap;
19struct wmKeyMapItem;
20
21namespace blender::wm {
22enum class OpCallContext : int8_t;
23}
24
25#ifdef WITH_XR_OPENXR
26struct wmXrActionData;
27#endif
28
29/* #wmKeyMap is in `DNA_windowmanager.h`, it's saveable. */
30
39
40using EventHandlerPoll = bool (*)(const wmWindow *win,
41 const ScrArea *area,
42 const ARegion *region,
43 const wmEvent *event);
44
53
56 void (*post_fn)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data);
57 void *user_data;
58};
59
65
78
86
109
133
141
142/* `wm_event_system.cc` */
143
144void wm_event_free_all(wmWindow *win);
145void wm_event_free(wmEvent *event);
147
154
159 wmWindow *win,
160 int type,
161 const void *customdata,
162 const uint64_t event_time_ms);
163#ifdef WITH_XR_OPENXR
164void wm_event_add_xrevent(wmWindow *win, wmXrActionData *actiondata, short val);
165#endif
166
167void wm_event_do_depsgraph(bContext *C, bool is_after_open_file);
178
180 wmWindow *win,
181 ARegion *region,
182 bool reactivate_button);
183
184/* `wm_event_query.cc`. */
185
189float wm_pressure_curve(float raw_pressure);
190void wm_tablet_data_from_ghost(const GHOST_TabletData *tablet_data, wmTabletData *wmtab);
191
192/* `wm_dropbox.cc`. */
193
194void wm_dropbox_free();
201void wm_drop_prepare(bContext *C, wmDrag *drag, wmDropBox *drop);
202void wm_drop_end(bContext *C, wmDrag *drag, wmDropBox *drop);
206void wm_drags_check_ops(bContext *C, const wmEvent *event);
216void wm_drags_draw(bContext *C, wmWindow *win);
#define C
Definition RandGen.cpp:29
void(*)(wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result) wmEventHandler_KeymapDynamicFn
Definition WM_api.hh:641
int(*)(bContext *C, const wmEvent *event, void *userdata) wmUIHandlerFunc
Definition WM_api.hh:677
eWM_EventHandlerFlag
Definition WM_api.hh:577
bool(*)(const wmWindow *win, const ScrArea *area, const ARegion *region, const wmEvent *event) EventHandlerPoll
Definition WM_api.hh:589
void(*)(bContext *C, void *userdata) wmUIHandlerRemoveFunc
Definition WM_api.hh:678
unsigned long long int uint64_t
struct wmGizmoMap * gizmo_map
wmEventHandler_KeymapDynamicFn keymap_fn
void(* post_fn)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data)
wmEventHandler_KeymapDynamic dynamic
wmEventHandler_KeymapPost post
wmEventHandler head
struct wmEventHandler_Op::@143214277125013224360266000304213254210030120033 context
wmUIHandlerRemoveFunc remove_fn
struct wmEventHandler_UI::@074045212224200350041021375036051334004230215220 context
wmUIHandlerFunc handle_fn
wmEventHandler head
wmEventHandler * prev
EventHandlerPoll poll
eWM_EventHandlerType type
eWM_EventHandlerFlag flag
wmEventHandler * next
void wm_dropbox_free()
float wm_pressure_curve(float raw_pressure)
void wm_drop_prepare(bContext *C, wmDrag *drag, wmDropBox *drop)
void wm_drop_end(bContext *C, wmDrag *drag, wmDropBox *drop)
void wm_event_do_handlers(bContext *C)
eWM_EventHandlerType
@ WM_HANDLER_TYPE_UI
@ WM_HANDLER_TYPE_OP
@ WM_HANDLER_TYPE_KEYMAP
@ WM_HANDLER_TYPE_GIZMO
@ WM_HANDLER_TYPE_DROPBOX
void wm_event_do_refresh_wm_and_depsgraph(bContext *C)
void wm_event_do_depsgraph(bContext *C, bool is_after_open_file)
void wm_tablet_data_from_ghost(const GHOST_TabletData *tablet_data, wmTabletData *wmtab)
void wm_drags_draw(bContext *C, wmWindow *win)
void wm_event_free_all(wmWindow *win)
void wm_drags_check_ops(bContext *C, const wmEvent *event)
blender::wm::OpCallContext wm_drop_operator_context_get(const wmDropBox *drop)
bool(*)(const wmWindow *win, const ScrArea *area, const ARegion *region, const wmEvent *event) EventHandlerPoll
void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, const void *customdata, const uint64_t event_time_ms)
void wm_drags_exit(wmWindowManager *wm, wmWindow *win)
void wm_event_handler_ui_cancel_ex(bContext *C, wmWindow *win, ARegion *region, bool reactivate_button)
void wm_event_free(wmEvent *event)
void wm_event_free_handler(wmEventHandler *handler)
void wm_event_do_notifiers(bContext *C)