64 float v1[3],
v2[3], v3[3];
125 View3D *v3d =
t->area->spacedata.first;
129 return (
void *)&
t->region->v2d;
142 switch (
t->spacetype) {
148 return t->settings->transform_pivot_point;
191 t->view_layer = view_layer;
203 t->obedit_type = obact->
type;
216 if (
t->data_container ==
NULL) {
217 t->data_container =
MEM_callocN(
sizeof(*
t->data_container), __func__);
218 t->data_container_len = 1;
240 t->handleEvent =
NULL;
250 t->orient_axis_ortho = 1;
262 t->remove_on_cancel =
false;
267 t->remove_on_cancel =
true;
287 t->spacetype =
area->spacetype;
292 const char *prop_id =
NULL;
294 prop_id =
"use_even_offset";
384 if ((
t->obedit_type != -1) && !use_island) {
390 bool t_values_set_is_array =
false;
394 float values[4] = {0};
397 t_values_set_is_array =
true;
414 bool constraint_axis[3] = {
false,
false,
false};
418 constraint_axis[0] = constraint_axis[1] = constraint_axis[2] =
true;
424 if (constraint_axis[0] || constraint_axis[1] || constraint_axis[2]) {
427 if (constraint_axis[0]) {
430 if (constraint_axis[1]) {
433 if (constraint_axis[2]) {
440 short orient_types[3];
441 float custom_matrix[3][3];
444 int orient_type_default = -1;
445 int orient_type_set = -1;
446 int orient_type_matrix_set = -1;
450 orient_type_scene = orient_slot->
type;
453 orient_type_scene += index_custom;
481 else if (orient_type_set == -1) {
486 orient_type_default = orient_type_scene;
488 if (orient_type_set != -1) {
491 orient_type_default = orient_type_set;
492 t->is_orient_default_overwrite =
true;
495 else if (orient_type_matrix_set != -1) {
496 orient_type_set = orient_type_matrix_set;
499 orient_type_default = orient_type_set;
500 t->is_orient_default_overwrite =
true;
504 orient_type_set = orient_type_scene;
514 if (orient_type_matrix_set == orient_type_set) {
519 orient_types[O_DEFAULT] = (short)orient_type_default;
520 orient_types[O_SCENE] = (short)orient_type_scene;
521 orient_types[O_SET] = (short)orient_type_set;
523 for (
int i = 0; i < 3; i++) {
526 for (j = 0; j < i; j++) {
527 if (orient_types[j] == orient_types[i]) {
528 memcpy(&
t->orient[i], &
t->orient[j],
sizeof(*
t->orient));
534 C,
t, orient_types[i], custom_matrix,
t->orient[i].matrix);
538 t->orient_type_mask = 0;
539 for (
int i = 0; i < 3; i++) {
540 const int type =
t->orient[i].type;
543 t->orient_type_mask |= (1 <<
type);
596 bool use_prop_edit =
false;
635 if (
t->prop_size <= 0.00001f) {
636 printf(
"Proportional size (%f) under 0.00001, resetting to 1!\n",
t->prop_size);
660 char automerge =
t->scene->toolsettings->automerge;
673 t->flag &= ~T_MIRROR;
690 custom_data->
free_cb(
t, tc, custom_data);
722 if (
t->draw_handle_view) {
725 if (
t->draw_handle_pixel) {
728 if (
t->draw_handle_cursor) {
743 if (
t->data_len_all != 0) {
749 for (
int a = 0;
a < tc->data_len;
a++, td++) {
764 t->data_container =
NULL;
784 if (
t->rng !=
NULL) {
821 if (td->
val && td->
val != td->loc) {
858 for (td = tc->data; td < tc->
data + tc->data_len; td++) {
862 for (tdm = tc->data_mirror; tdm < tc->data_mirror + tc->data_mirror_len; tdm++) {
866 for (td2d = tc->data_2d; tc->data_2d && td2d < tc->data_2d + tc->data_len; td2d++) {
868 td2d->
h1[0] = td2d->
ih1[0];
869 td2d->
h1[1] = td2d->
ih1[1];
872 td2d->
h2[0] = td2d->
ih2[0];
873 td2d->
h2[1] = td2d->
ih2[1];
894 if (tc->use_local_mat) {
895 mul_v3_m4v3(tc->center_local, tc->imat, center_global);
905 const float *cursor =
t->scene->cursor.location;
912 r_center[0] =
t->region->winx / 2.0f;
913 r_center[1] =
t->region->winy / 2.0f;
921 float cursor_local_buf[2];
922 const float *cursor =
NULL;
931 cursor = cursor_local_buf;
935 cursor = space_clip->
cursor;
954 r_center[0] = co[0] *
t->aspect[0];
955 r_center[1] = co[1] *
t->aspect[1];
964 r_center[0] = cursor[0] *
t->aspect[0];
965 r_center[1] = cursor[1] *
t->aspect[1];
1006 float partial[3] = {0.0f, 0.0f, 0.0f};
1011 for (
int i = 0; i < tc->data_len; i++) {
1017 for (
int i = 0; i < tc->data_mirror_len; i++) {
1025 mul_v3_fl(partial, 1.0f / (
float)total);
1033 bool changed =
false;
1037 for (
int i = 0; i < tc->data_len; i++) {
1043 for (
int i = 0; i < tc->data_mirror_len; i++) {
1151 t->zfac = 1.0f / sima->
zoom;
1153 else if (
t->region) {
1154 View2D *v2d = &
t->region->v2d;
1158 t->zfac = 1.0f / zoomx;
1182 axis[0] =
t->center_global[0] - 6.0f * axis[0];
1183 axis[1] =
t->center_global[1] - 6.0f * axis[1];
1184 axis[2] =
t->center_global[2] - 6.0f * axis[2];
1203 float zoom_prev =
t->zfac;
1207 zoom_prev *=
len_v3(
t->persinv[0]);
1215 zoom_new *=
len_v3(
t->persinv[0]);
1222 if (
t->orient_curr == i) {
1244 t->proptext[0] =
'\0';
1247 const char *pet_id =
NULL;
1250 for (i = 0; i < tc->data_len; i++, td++) {
1255 (connected == 0 && td->
rdist >
t->prop_size)) {
1262 dist = (
t->prop_size - td->
dist) /
t->prop_size;
1265 dist = (
t->prop_size - td->
rdist) /
t->prop_size;
1277 switch (
t->prop_mode) {
1279 td->
factor = dist * dist;
1282 td->
factor = 3.0f * dist * dist - 2.0f * dist * dist * dist;
1297 if (
t->rng ==
NULL) {
1305 td->
factor = dist * (2.0f - dist);
1315 switch (
t->prop_mode) {
1317 pet_id =
N_(
"(Sharp)");
1320 pet_id =
N_(
"(Smooth)");
1323 pet_id =
N_(
"(Root)");
1326 pet_id =
N_(
"(Linear)");
1329 pet_id =
N_(
"(Constant)");
1332 pet_id =
N_(
"(Sphere)");
1335 pet_id =
N_(
"(Random)");
1338 pet_id =
N_(
"(InvSquare)");
1351 for (i = 0; i < tc->data_len; i++, td++) {
1366 float dmat_inv[3][3];
1414 float axis[3],
angle;
typedef float(TangentPoint)[2]
struct ScrArea * CTX_wm_area(const bContext *C)
struct Scene * CTX_data_scene(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct bGPdata * CTX_data_gpencil_data(const bContext *C)
struct wmMsgBus * CTX_wm_message_bus(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct Depsgraph * CTX_data_depsgraph_pointer(const bContext *C)
struct ToolSettings * CTX_data_tool_settings(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
struct Base * BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob)
void BKE_mask_coord_from_image(struct Image *image, struct ImageUser *iuser, float r_co[2], const float co[2])
void BKE_mask_coord_from_movieclip(struct MovieClip *clip, struct MovieClipUser *user, float r_co[2], const float co[2])
struct Object * BKE_modifiers_is_deformed_by_armature(struct Object *ob)
struct Paint * BKE_paint_get_active(struct Scene *sce, struct ViewLayer *view_layer)
struct Paint * BKE_paint_get_active_from_context(const struct bContext *C)
#define BLI_assert_msg(a, msg)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
MINLINE float max_ff(float a, float b)
void copy_m3_m3(float m1[3][3], const float m2[3][3])
void unit_m3(float m[3][3])
void copy_m3_m4(float m1[3][3], const float m2[4][4])
void invert_m3_m3_safe_ortho(float Ainv[3][3], const float A[3][3])
void normalize_m3(float R[3][3]) ATTR_NONNULL()
void mul_m4_v3(const float M[4][4], float r[3])
bool invert_m3_m3(float R[3][3], const float A[3][3])
void mul_v3_m4v3(float r[3], const float M[4][4], const float v[3])
void mul_m3_m3m3(float R[3][3], const float A[3][3], const float B[3][3])
void eulO_to_mat3(float mat[3][3], const float eul[3], short order)
void mat3_to_compatible_eulO(float eul[3], const float old[3], short order, const float mat[3][3])
void mat3_to_quat(float q[4], const float mat[3][3])
float normalize_qt_qt(float r[4], const float q[4])
void mat3_to_axis_angle(float axis[3], float *angle, const float M[3][3])
void copy_qt_qt(float q[4], const float a[4])
void quat_to_mat3(float mat[3][3], const float q[4])
void axis_angle_to_mat3(float R[3][3], const float axis[3], float angle)
MINLINE void copy_v4_v4(float r[4], const float a[4])
void minmax_v3v3_v3(float min[3], float max[3], const float vec[3])
MINLINE float normalize_v3(float r[3])
MINLINE void mul_v3_v3(float r[3], const float a[3])
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v2_v2_int(int r[2], const int a[2])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE bool is_zero_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void add_v3_v3v3(float r[3], const float a[3], const float b[3])
void mid_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void zero_v3(float r[3])
MINLINE void add_v3_v3(float r[3], const float a[3])
MINLINE float len_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
void BLI_rng_free(struct RNG *rng) ATTR_NONNULL(1)
struct RNG * BLI_rng_new(unsigned int seed)
float BLI_rng_get_float(struct RNG *rng) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
#define INIT_MINMAX(min, max)
#define SET_FLAG_FROM_TEST(value, test, flag)
#define GPENCIL_EDIT_MODE(gpd)
#define OB_MODE_ALL_PAINT
#define OB_MODE_ALL_WEIGHT_PAINT
#define UVCALC_TRANSFORM_CORRECT_SLIDE
#define BASACT(_view_layer)
#define OBACT(_view_layer)
#define BASE_VISIBLE(v3d, base)
@ V3D_AROUND_CENTER_BOUNDS
@ V3D_AROUND_CENTER_MEDIAN
@ V3D_AROUND_LOCAL_ORIGINS
@ V3D_ORIENT_CUSTOM_MATRIX
bool ED_space_clip_check_show_trackedit(struct SpaceClip *sc)
bool ED_space_clip_check_show_maskedit(struct SpaceClip *sc)
bool ED_space_image_show_uvedit(const struct SpaceImage *sima, struct Object *obedit)
bool ED_object_calc_active_center_for_posemode(struct Object *ob, bool select_only, float r_center[3])
bool ED_object_calc_active_center_for_editmode(struct Object *obedit, bool select_only, float r_center[3])
bScreen * ED_screen_animation_playing(const struct wmWindowManager *wm)
bool ED_region_draw_cb_exit(struct ARegionType *art, void *handle)
void ED_uvedit_live_unwrap_end(short cancel)
eV3DProjStatus ED_view3d_project_float_global(const struct ARegion *region, const float co[3], float r_co[2], eV3DProjTest flag)
float ED_view3d_calc_zfac(const struct RegionView3D *rv3d, const float co[3])
NSNotificationCenter * center
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble v1
void GPU_matrix_pop(void)
void GPU_matrix_push(void)
@ GPU_SHADER_3D_UNIFORM_COLOR
Read Guarded memory(de)allocation.
Platform independent time functions.
void UI_make_axis_color(const unsigned char src_col[3], unsigned char dst_col[3], char axis)
void UI_GetThemeColor3ubv(int colorid, unsigned char col[3])
float UI_view2d_view_to_region_x(const struct View2D *v2d, float x)
float UI_view2d_view_to_region_y(const struct View2D *v2d, float y)
ATTR_WARN_UNUSED_RESULT const BMVert * v2
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
CCL_NAMESPACE_BEGIN struct Options options
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
MINLINE void zero_v2_int(int r[2])
static void area(int d1, int d2, int e1, int e2, float weights[2])
float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_array_check(PropertyRNA *prop)
void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, bool *values)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
bool RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value)
int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int SEQ_tool_settings_pivot_point_get(Scene *scene)
struct PaintCurve * paint_curve
struct ToolSettings * toolsettings
struct MovieClipUser user
TransCustomData first_elem
void(* free_cb)(struct TransInfo *, struct TransDataContainer *tc, struct TransCustomData *custom_data)
TransDataCurveHandleFlags * hdata
struct wmTimer * animtimer
struct ReportList * reports
long int PIL_check_seconds_timer_i(void)
void WM_cursor_modal_restore(wmWindow *win)
void WM_event_drag_start_mval(const wmEvent *event, const ARegion *region, int r_mval[2])
#define ISMOUSE_BUTTON(event_type)
bool WM_paint_cursor_end(wmPaintCursor *handle)