Blender V4.3
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
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;
21
22#ifdef WITH_XR_OPENXR
23struct wmXrActionData;
24#endif
25
26/* #wmKeyMap is in `DNA_windowmanager.h`, it's saveable. */
27
36
37using EventHandlerPoll = bool (*)(const ARegion *region, const wmEvent *event);
38
47
50 void (*post_fn)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data);
51 void *user_data;
52};
53
59
72
80
103
107
110
113
115 struct {
116 /* To override the window, and hence the screen. Set for few cases only, usually window/screen
117 * can be taken from current context. */
119
124};
125
133
134/* `wm_event_system.cc` */
135
136void wm_event_free_all(wmWindow *win);
137void wm_event_free(wmEvent *event);
139
146
151 wmWindow *win,
152 int type,
153 const void *customdata,
154 const uint64_t event_time_ms);
155#ifdef WITH_XR_OPENXR
156void wm_event_add_xrevent(wmWindow *win, wmXrActionData *actiondata, short val);
157#endif
158
159void wm_event_do_depsgraph(bContext *C, bool is_after_open_file);
170
172 wmWindow *win,
173 ARegion *region,
174 bool reactivate_button);
175
176/* `wm_event_query.cc`. */
177
181float wm_pressure_curve(float raw_pressure);
182void wm_tablet_data_from_ghost(const GHOST_TabletData *tablet_data, wmTabletData *wmtab);
183
184/* `wm_dropbox.cc`. */
185
186void wm_dropbox_free();
193void wm_drop_prepare(bContext *C, wmDrag *drag, wmDropBox *drop);
194void wm_drop_end(bContext *C, wmDrag *drag, wmDropBox *drop);
198void wm_drags_check_ops(bContext *C, const wmEvent *event);
208void wm_drags_draw(bContext *C, wmWindow *win);
int(*)(bContext *C, const wmEvent *event, void *userdata) wmUIHandlerFunc
Definition WM_api.hh:528
eWM_EventHandlerFlag
Definition WM_api.hh:462
bool(*)(const ARegion *region, const wmEvent *event) EventHandlerPoll
Definition WM_api.hh:474
void(*)(wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result) wmEventHandler_KeymapDynamicFn
Definition WM_api.hh:492
void(*)(bContext *C, void *userdata) wmUIHandlerRemoveFunc
Definition WM_api.hh:529
wmOperatorCallContext
Definition WM_types.hh:216
unsigned __int64 uint64_t
Definition stdint.h:90
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::@1394 context
wmUIHandlerRemoveFunc remove_fn
wmUIHandlerFunc handle_fn
struct wmEventHandler_UI::@1393 context
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)
wmOperatorCallContext wm_drop_operator_context_get(const wmDropBox *drop)
void wm_drags_check_ops(bContext *C, const wmEvent *event)
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)
bool(*)(const ARegion *region, const wmEvent *event) EventHandlerPoll
void wm_event_free_handler(wmEventHandler *handler)
void wm_event_do_notifiers(bContext *C)