11#include <fmt/format.h>
77#include "RNA_prototypes.hh"
92#define KM_MODAL_CANCEL 1
93#define KM_MODAL_APPLY 2
94#define KM_MODAL_SNAP_ON 3
95#define KM_MODAL_SNAP_OFF 4
166 if (
G.is_rendering) {
184 if (screen ==
nullptr) {
297 if (region ==
nullptr) {
301 if (gzmap ==
nullptr) {
344 if (ob && ob == obedit) {
454 return (ob !=
nullptr);
614 if (obpose !=
nullptr) {
669 return nullptr != ((
Curve *)obedit->
data)->editnurb;
688 return nullptr != ((
Curve *)obedit->
data)->editnurb;
708 return nullptr != ((
Curve *)obedit->
data)->editnurb;
729 return nullptr != ((
Lattice *)obedit->
data)->editlatt;
738 return nullptr != ((
MetaBall *)obedit->
data)->editelems;
845 rcti *rect,
const short ,
const short ,
const short x2,
const short y2)
853 *r_rect_clip = az->
rect;
970 if (mouse_sq < spot_sq) {
973 else if (mouse_sq < fadein_sq) {
976 else if (mouse_sq < fadeout_sq) {
977 az->
alpha = 1.0f -
float(mouse_sq - fadein_sq) /
float(fadeout_sq - fadein_sq);
1005 else if (test_only) {
1006 if (isect_value != 0) {
1011 bool redraw =
false;
1013 if (isect_value ==
'h') {
1020 else if (isect_value ==
'v') {
1029 float dist_fac = 0.0f, alpha = 0.0f;
1033 CLAMP(dist_fac, 0.0f, 1.0f);
1034 alpha = 1.0f - dist_fac;
1040 CLAMP(dist_fac, 0.0f, 1.0f);
1041 alpha = 1.0f - dist_fac;
1056 else if (!test_only && !
IS_EQF(az->
alpha, 0.0f)) {
1089 if (az !=
nullptr) {
1151 event.customdata_free =
true;
1173 sad->
x =
event->xy[0];
1174 sad->
y =
event->xy[1];
1201 switch (event->
type) {
1203 const int delta_x = (
event->xy[0] - sad->
x);
1204 const int delta_y = (
event->xy[1] - sad->
y);
1207 const int delta_max =
max_ii(
abs(delta_x),
abs(delta_y));
1210 const int join_threshold = (0.6 *
U.widget_unit);
1211 const int split_threshold = (1.2 *
U.widget_unit);
1212 const int area_threshold = (0.1 *
U.widget_unit);
1215 if (delta_y >
abs(delta_x)) {
1218 else if (delta_x >=
abs(delta_y)) {
1221 else if (delta_y < -
abs(delta_x)) {
1248 is_gesture = (delta_max > area_threshold);
1255 else if (area == sad->
sa1) {
1260 is_gesture = (delta_max > split_threshold);
1262 else if (!area || area->
global) {
1282 is_gesture = (delta_max > join_threshold);
1286#if defined(__APPLE__)
1296 is_gesture = (delta_max > area_threshold);
1333 ot->name =
"Handle Area Action Zones";
1334 ot->description =
"Handle area action zones for mouse actions/gestures";
1335 ot->idname =
"SCREEN_OT_actionzone";
1345 RNA_def_int(
ot->srna,
"modifier", 0, 0, 2,
"Modifier",
"Modifier state", 0, 2);
1355 const int cursor[2],
1367 if (actedge ==
nullptr) {
1427 if (sad ==
nullptr || sad->
sa1 ==
nullptr) {
1471 switch (event->
type) {
1483 if (!sad->
sa2 || sad->
sa1 == sad->
sa2) {
1517 if (sa1 ==
nullptr || sa2 ==
nullptr) {
1526 ot->name =
"Swap Areas";
1527 ot->description =
"Swap selected areas screen positions";
1528 ot->idname =
"SCREEN_OT_area_swap";
1540 ot->srna,
"cursor", 2,
nullptr, INT_MIN, INT_MAX,
"Cursor",
"", INT_MIN, INT_MAX);
1563 const rcti window_rect = {win->
posx + position.x,
1564 win->
posx + position.x + area->
winx,
1565 win->
posy + position.y,
1566 win->
posy + position.y + area->
winy};
1580 return (newwin !=
nullptr);
1588 if (sad ==
nullptr) {
1613 ot->name =
"Duplicate Area into New Window";
1614 ot->description =
"Duplicate selected area into new window";
1615 ot->idname =
"SCREEN_OT_area_dupli";
1647 float inner[4] = {0.0f, 0.0f, 0.0f, 0.7f};
1694 ot->name =
"Close Area";
1695 ot->description =
"Close selected area";
1696 ot->idname =
"SCREEN_OT_area_close";
1763 bool *use_bigger_smaller_snap)
1766 *bigger = *smaller = 100000;
1768 if (use_bigger_smaller_snap !=
nullptr) {
1769 *use_bigger_smaller_snap =
false;
1774 size_min =
max_ii(size_min, 0);
1779 if (area->v1->editflag && area->v2->editflag) {
1780 *smaller = area->v4->vec.x - size_max;
1781 *bigger = area->v4->vec.x - size_min;
1782 *use_bigger_smaller_snap =
true;
1786 if (area->v2->editflag && area->v3->editflag) {
1787 *smaller = area->v1->vec.y + size_min;
1788 *bigger = area->v1->vec.y + size_max;
1789 *use_bigger_smaller_snap =
true;
1793 if (area->v3->editflag && area->v4->editflag) {
1794 *smaller = area->v1->vec.x + size_min;
1795 *bigger = area->v1->vec.x + size_max;
1796 *use_bigger_smaller_snap =
true;
1800 if (area->v4->editflag && area->v1->editflag) {
1801 *smaller = area->v2->vec.y - size_max;
1802 *bigger = area->v2->vec.y - size_min;
1803 *use_bigger_smaller_snap =
true;
1816 if (area->v1->editflag && area->v4->editflag) {
1817 *bigger =
min_ii(*bigger, y1);
1819 else if (area->v2->editflag && area->v3->editflag) {
1820 *smaller =
min_ii(*smaller, y1);
1826 if (area->v1->editflag && area->v2->editflag) {
1827 *bigger =
min_ii(*bigger, x1);
1829 else if (area->v3->editflag && area->v4->editflag) {
1830 *smaller =
min_ii(*smaller, x1);
1841 float factor = 1.0f;
1842 if (now < md->end_time) {
1853 float factor = 1.0f;
1859 if (now < md->end_time) {
1883 const int xy[2] = {
x,
y};
1889 if (actedge ==
nullptr) {
1908 v1->editflag = v1->flag;
1911 bool use_bigger_smaller_snap =
false;
1934 int m_cursor_final = -1;
1935 const int m_cursor = origval + delta;
1936 const int m_span =
float(bigger + smaller);
1937 const int m_min = origval - smaller;
1940 switch (snap_type) {
1942 m_cursor_final = m_cursor;
1943 if (!
ELEM(delta, bigger, -smaller)) {
1944 m_cursor_final -= (m_cursor %
AREAGRID);
1945 CLAMP(m_cursor_final, origval - smaller, origval + bigger);
1950 if (m_cursor_final < (m_min + snap_threshold)) {
1951 m_cursor_final = m_min;
1953 else if (m_cursor_final > (origval + bigger - snap_threshold)) {
1954 m_cursor_final = origval + bigger;
1959 m_cursor_final = (m_cursor >= bigger) ? bigger : smaller;
1964 int snap_dist_best = INT_MAX;
1966 const float div_array[] = {
1984 const int snap_dist_test =
abs(m_cursor - m_cursor_test);
1985 if (snap_dist_best >= snap_dist_test) {
1986 snap_dist_best = snap_dist_test;
1987 m_cursor_final = m_cursor_test;
1993 if (!v1->editflag) {
1996 const int v_loc = (&v1->vec.x)[!axis];
2002 if (v_loc == (&
v2->vec.x)[!axis]) {
2003 const int v_loc2 = (&
v2->vec.x)[axis];
2005 if ((origval - smaller) < v_loc2 && v_loc2 < (origval + bigger)) {
2006 const int snap_dist_test =
abs(m_cursor - v_loc2);
2007 if (snap_dist_best >= snap_dist_test) {
2008 snap_dist_best = snap_dist_test;
2009 m_cursor_final = v_loc2;
2022 IN_RANGE_INCL(m_cursor_final, origval - smaller, origval + bigger));
2024 return m_cursor_final;
2043 short final_loc = -1;
2044 bool doredraw =
false;
2047 CLAMP(delta, -smaller, bigger);
2051 final_loc = origval + delta;
2055 screen, snap_type, delta, origval, dir_axis, bigger, smaller);
2064 short oldval = (&v1->vec.x)[axis];
2065 (&v1->vec.x)[axis] = final_loc;
2067 if (oldval == final_loc) {
2077 bool redraw_all =
false;
2079 if (area->v1->editflag || area->v2->editflag || area->v3->editflag || area->v4->editflag) {
2083 if (
abs(height - area->global->size_min) <
abs(height - area->global->size_max)) {
2084 area->global->cur_fixed_height = area->global->size_min;
2087 area->global->cur_fixed_height = area->global->size_max;
2190 switch (event->
type) {
2206 switch (event->
val) {
2245 ot->name =
"Move Area Edges";
2246 ot->description =
"Move selected area edges";
2247 ot->idname =
"SCREEN_OT_area_move";
2259 RNA_def_int(
ot->srna,
"x", 0, INT_MIN, INT_MAX,
"X",
"", INT_MIN, INT_MAX);
2260 RNA_def_int(
ot->srna,
"y", 0, INT_MIN, INT_MAX,
"Y",
"", INT_MIN, INT_MAX);
2261 RNA_def_int(
ot->srna,
"delta", 0, INT_MIN, INT_MAX,
"Delta",
"", INT_MIN, INT_MAX);
2320 if (!area || area->
global) {
2366 if (area ==
nullptr) {
2403 if (sav1 == sbv4 && sav2 == sbv3) {
2406 if (sav2 == sbv1 && sav3 == sbv4) {
2409 if (sav3 == sbv2 && sav4 == sbv1) {
2412 if (sav1 == sbv2 && sav4 == sbv3) {
2435 if (sd->
narea ==
nullptr) {
2530 if (sad ==
nullptr || sad->
modifier > 0) {
2535 if (sad->
sa1 ==
nullptr || sad->
az ==
nullptr) {
2547 const bool is_left = factor_v < 0.5f;
2548 const bool is_bottom = factor_h < 0.5f;
2549 const bool is_right = !
is_left;
2550 const bool is_top = !is_bottom;
2563 if ((is_top &&
is_left) || (is_bottom && is_right)) {
2564 factor = 1.0f - factor;
2578 if (area ==
nullptr) {
2584 op->
ptr, prop_factor,
float(event->
xy[0] - area->
v1->
vec.
x) /
float(area->
winx));
2588 op->
ptr, prop_factor,
float(event->
xy[1] - area->
v1->
vec.
y) /
float(area->
winy));
2611 if (actedge ==
nullptr) {
2678 sd->
narea =
nullptr;
2688 bool update_factor =
false;
2691 switch (event->
type) {
2693 update_factor =
true;
2698 float inner[4] = {1.0f, 1.0f, 1.0f, 0.1f};
2699 float outline[4] = {1.0f, 1.0f, 1.0f, 0.3f};
2730 update_factor =
true;
2745 update_factor =
true;
2752 if (update_factor) {
2833 {0,
nullptr, 0,
nullptr,
nullptr},
2838 ot->name =
"Split Area";
2839 ot->description =
"Split selected area into new windows";
2840 ot->idname =
"SCREEN_OT_area_split";
2854 RNA_def_float(
ot->srna,
"factor", 0.5f, 0.0, 1.0,
"Factor",
"", 0.0, 1.0);
2856 ot->srna,
"cursor", 2,
nullptr, INT_MIN, INT_MAX,
"Cursor",
"", INT_MIN, INT_MAX);
2986 short *
size, maxsize = -1;
2997 if (*
size > maxsize && maxsize > 0) {
3017 if (region_tool_header !=
nullptr) {
3034 switch (event->
type) {
3040 const int snap_size_threshold = (
U.widget_unit * 2) / aspect;
3041 bool size_changed =
false;
3044 delta =
event->xy[0] - rmd->
orig_xy[0];
3052 const int size_no_snap = rmd->
origval + delta;
3061 if ((
abs(rmd->
region->
sizex - sizex_test) < snap_size_threshold) &&
3063 sizex_test <= rmd->maxsize)
3070 if (size_no_snap <
UI_UNIT_X / aspect) {
3086 size_changed =
true;
3090 delta =
event->xy[1] - rmd->
orig_xy[1];
3098 const int size_no_snap = rmd->
origval + delta;
3107 if ((
abs(rmd->
region->
sizey - sizey_test) < snap_size_threshold) &&
3109 (sizey_test <= rmd->maxsize))
3119 if (size_no_snap < (
UI_UNIT_Y / 4) / aspect) {
3135 size_changed =
true;
3138 if (size_changed && rmd->
region->
runtime->type->on_user_resize) {
3194 ot->name =
"Scale Region Size";
3195 ot->description =
"Scale selected area";
3196 ot->idname =
"SCREEN_OT_region_scale";
3243 if ((current_frame >= region->v2d.cur.xmin) && (current_frame <= region->v2d.cur.xmax)) {
3251 region->v2d.cur.xmax = current_frame + (
w / 2);
3252 region->v2d.cur.xmin = current_frame - (
w / 2);
3255 if (current_frame < region->v2d.cur.xmin) {
3256 region->v2d.cur.xmax = current_frame;
3257 region->v2d.cur.xmin = region->v2d.cur.xmax -
w;
3260 region->v2d.cur.xmin = current_frame;
3261 region->v2d.cur.xmax = region->v2d.cur.xmin +
w;
3281 if (delta < 0 && scene->r.subframe > 0) {
3284 scene->
r.
cfra += delta;
3301 ot->name =
"Frame Offset";
3302 ot->idname =
"SCREEN_OT_frame_offset";
3303 ot->description =
"Move current frame forward/backward by a given number";
3309 ot->undo_group =
"Frame Change";
3312 RNA_def_int(
ot->srna,
"delta", 0, INT_MIN, INT_MAX,
"Delta",
"", INT_MIN, INT_MAX);
3369 ot->name =
"Jump to Endpoint";
3370 ot->description =
"Jump to first/last frame in frame range";
3371 ot->idname =
"SCREEN_OT_frame_jump";
3377 ot->undo_group =
"Frame Change";
3381 ot->srna,
"end",
false,
"Last Frame",
"Jump to the last frame of the frame range");
3396 if (scene ==
nullptr) {
3406 int step = (int)delta;
3407 float fraction = delta -
step;
3420 const int frame_offset = (int)subframe_offset;
3421 scene->
r.
cfra += frame_offset;
3437 ot->name =
"Jump Time by Delta";
3438 ot->description =
"Jump forward/backward by a given number of frames or seconds";
3439 ot->idname =
"SCREEN_OT_time_jump";
3445 ot->undo_group =
"Frame Change";
3448 RNA_def_boolean(
ot->srna,
"backward",
false,
"Backwards",
"Jump backwards in time");
3485 fcurve_to_keylist(ale->adt, fcu, &keylist, 0, {-FLT_MAX, FLT_MAX}, use_nla_mapping);
3518 nullptr,
static_cast<const GreasePencil *
>(ob->
data), &keylist, 0, active_layer_only);
3539 if (scene ==
nullptr) {
3570 while ((ak !=
nullptr) && (done ==
false)) {
3571 if (cfra < ak->cfra) {
3583 while ((ak !=
nullptr) && (done ==
false)) {
3584 if (cfra > ak->
cfra) {
3598 if (done ==
false) {
3621 ot->name =
"Jump to Keyframe";
3622 ot->description =
"Jump to previous/next keyframe";
3623 ot->idname =
"SCREEN_OT_keyframe_jump";
3629 ot->undo_group =
"Frame Change";
3656 if ((marker->frame > scene->
r.
cfra) && (!found ||
closest > marker->frame)) {
3691 ot->name =
"Jump to Marker";
3692 ot->description =
"Jump to previous/next marker";
3693 ot->idname =
"SCREEN_OT_marker_jump";
3699 ot->undo_group =
"Frame Change";
3726 ot->name =
"Set Screen";
3727 ot->description =
"Cycle through available screens";
3728 ot->idname =
"SCREEN_OT_screen_set";
3734 RNA_def_int(
ot->srna,
"delta", 1, -1, 1,
"Delta",
"", -1, 1);
3755 if (area_iter->full) {
3761 if (area ==
nullptr) {
3804 ot->name =
"Toggle Maximize Area";
3805 ot->description =
"Toggle display selected area as fullscreen/maximized";
3806 ot->idname =
"SCREEN_OT_screen_full_area";
3813 ot->srna,
"use_hide_panels",
false,
"Hide Panels",
"Hide all the panels (Focus Mode)");
3875 if (!sd || !sd->
sa1) {
3879 float factor = 1.0f;
3881 if (now < sd->end_time) {
3902 float factor = 1.0f;
3904 if (now < jd->end_time) {
3937 if (sa1 ==
nullptr && sa2 ==
nullptr) {
3954 if (sa1 ==
nullptr) {
3993 float inner[4] = {1.0f, 1.0f, 1.0f, 0.1f};
3994 float outline[4] = {1.0f, 1.0f, 1.0f, 0.3f};
4071 if (sad ==
nullptr || sad->
modifier > 0 || sad->
sa1 ==
nullptr) {
4120 bool aligned_neighbors = (offset1 == 0 && offset2 == 0);
4121 bool same_area = (jd->
sa1 == jd->
sa2);
4136 if (jd->
factor <= 0.5f) {
4150 float inner[4] = {1.0f, 1.0f, 1.0f, 0.15f};
4151 float outline[4] = {1.0f, 1.0f, 1.0f, 0.4f};
4170 float inner[4] = {0.0f, 0.0f, 0.0f, 0.7f};
4187 if (event->
xy[0] < 0 || event->
xy[0] > jd->
win1->
sizex || event->
xy[1] < 1 ||
4197 if (screen && screen->
temp) {
4228#if defined(__APPLE__)
4240 const bool alt =
event->modifier &
KM_ALT;
4241 const bool ctrl =
event->modifier &
KM_CTRL;
4242 const float accel = (alt || ctrl) ? 2.5f : 2.0;
4244 float factor =
pos * accel;
4247 if (factor >= 0.4375f && factor < 0.5f) {
4250 else if (factor >= 0.5f && factor < 0.5625f) {
4256 if (factor < 0.1875f) {
4259 else if (factor >= 0.1875f && factor < 0.3125f) {
4262 else if (factor >= 0.3125f && factor < 0.4375f) {
4265 else if (factor >= 0.5625f && factor < 0.6875f) {
4268 else if (factor >= 0.6875f && factor < 0.8125f) {
4271 else if (factor > 0.8125f) {
4285 if (jd->
sa1 == jd->
sa2) {
4291 if (screen && screen->
temp) {
4304 const int x =
event->xy[0] + win1_posx - win2_posx - jd->
sa2->
totrct.
xmin;
4305 const int y =
event->xy[1] + win1_posy - win2_posy - jd->
sa2->
totrct.
ymin;
4347 if (jd->
sa2->
winx < (min_x * 3)) {
4348 if (fac_y > 0.4f && fac_y < 0.6f) {
4351 if (
float(
y) >
float(jd->
sa2->
winy) / 2.0f) {
4358 if (jd->
sa2->
winy < (min_y * 3)) {
4359 if (fac_x > 0.4f && fac_x < 0.6f) {
4362 if (
float(
x) >
float(jd->
sa2->
winx) / 2.0f) {
4371 if (fac_x > 0.4f && fac_x < 0.6f && fac_y > 0.4f && fac_y < 0.6f) {
4378 const bool upper_left =
float(
x) /
float(
y + 1) < area_ratio;
4382 if (upper_left && !lower_left) {
4386 if (!upper_left && lower_left) {
4390 if (upper_left && lower_left) {
4394 if (!upper_left && !lower_left) {
4415 const int v_loc = (&v1->vec.x)[axis];
4416 const int v_dist =
abs(v_loc - event->
xy[axis]);
4417 if (v_dist < dist) {
4426 float frac_fac =
round(fac * 12.0f) / 12.0f;
4429 fac = (
fabs(near_fac - fac) <
fabs(frac_fac - fac)) ? near_fac : frac_fac;
4433 if (fac >= 0.48f && fac < 0.5f) {
4436 else if (fac >= 0.5f && fac < 0.52f) {
4445 if (min_fac < 0.5f) {
4446 return std::clamp(fac, min_fac, 1.0f - min_fac);
4458#if (OS_WINDOWS || OS_MAC)
4473 if (win_count > 1) {
4487 if (jd->
sa2 != area) {
4492 if (jd->
sa1 == area) {
4495 if (!(
abs(jd->
start_x - event->
xy[0]) > drag_threshold ||
4533 IFACE_(
"Horizontal Split"),
4534 ICON_SPLIT_HORIZONTAL,
4542 ptr = layout->
op(
"SCREEN_OT_area_split",
4543 IFACE_(
"Vertical Split"),
4544 ICON_SPLIT_VERTICAL,
4553 layout->
op(
"SCREEN_OT_area_join",
IFACE_(
"Move/Join/Dock Area"), ICON_AREA_DOCK);
4557 layout->
op(
"SCREEN_OT_screen_full_area",
4561 ptr = layout->
op(
"SCREEN_OT_screen_full_area",
IFACE_(
"Focus Mode"), ICON_NONE);
4564 layout->
op(
"SCREEN_OT_area_dupli", std::nullopt, ICON_NONE);
4566 layout->
op(
"SCREEN_OT_area_close",
IFACE_(
"Close Area"), ICON_X);
4608 if (jd ==
nullptr) {
4613 switch (event->
type) {
4624 status.item(
IFACE_(
"Split/Dock"), ICON_MOUSE_LMB_DRAG);
4628 status.item(
IFACE_(
"Select Split"), ICON_MOUSE_LMB_DRAG);
4635 status.item(
IFACE_(
"Select Area"), ICON_MOUSE_LMB_DRAG);
4639 status.item(
IFACE_(
"Select Location"), ICON_MOUSE_LMB_DRAG);
4662 if (jd->
sa1 && !jd->
sa2) {
4664 if (event->
xy[0] < 0 || event->
xy[0] > jd->
win1->
sizex || event->
xy[1] < 1 ||
4682 else if (jd->
sa1 && jd->
sa1 == jd->
sa2) {
4685 float inner[4] = {1.0f, 1.0f, 1.0f, 0.1f};
4686 float outline[4] = {1.0f, 1.0f, 1.0f, 0.3f};
4704 if (large_v || large_h) {
4742 const bool do_close_win = jd->
close_win;
4770 ot->name =
"Join Area";
4771 ot->description =
"Join selected areas into new window";
4772 ot->idname =
"SCREEN_OT_area_join";
4828 ptr = layout->
op(
"SCREEN_OT_area_split",
4829 IFACE_(
"Vertical Split"),
4830 ICON_SPLIT_VERTICAL,
4838 ptr = layout->
op(
"SCREEN_OT_area_split",
4839 IFACE_(
"Horizontal Split"),
4840 ICON_SPLIT_HORIZONTAL,
4855 ptr = layout->
op(
"SCREEN_OT_area_join",
4865 "SCREEN_OT_area_join",
4879 ptr = layout->
op(
"SCREEN_OT_area_swap",
4895 ot->name =
"Area Options";
4896 ot->description =
"Operations for splitting and merging";
4897 ot->idname =
"SCREEN_OT_area_options";
4921 if (area->spacedata.first != area->spacedata.last) {
4939 ot->name =
"Clean Up Space Data";
4940 ot->description =
"Remove unused settings for invisible editors";
4941 ot->idname =
"SCREEN_OT_spacedata_cleanup";
4973 lastop = lastop->
prev;
4987 ot->name =
"Repeat Last";
4988 ot->description =
"Repeat last action";
4989 ot->idname =
"SCREEN_OT_repeat_last";
5020 for (
i = items - 1, lastop =
static_cast<wmOperator *
>(wm->
runtime->operators.last); lastop;
5021 lastop = lastop->
prev,
i--)
5055 ot->name =
"Repeat History";
5056 ot->description =
"Display menu for previous actions performed";
5057 ot->idname =
"SCREEN_OT_repeat_history";
5064 RNA_def_int(
ot->srna,
"index", 0, 0, INT_MAX,
"Index",
"", 0, 1000);
5089 ot->name =
"Redo Last";
5090 ot->description =
"Display parameters for last action performed";
5091 ot->idname =
"SCREEN_OT_redo_last";
5115 ScrArea *area,
ARegion *region,
const char viewlock,
const char view,
const char persp)
5128 rv3d->
persp = persp;
5163 if (region != region_user) {
5197 else if (region->
next) {
5214 int index_qsplit = 0;
5230 (region = region->
next),
5235 (region = region->
next),
5261 ot->name =
"Toggle Quad View";
5262 ot->description =
"Split selected area into camera, front, right, and top views";
5263 ot->idname =
"SCREEN_OT_region_quadview";
5313 ot->name =
"Toggle Region";
5314 ot->idname =
"SCREEN_OT_region_toggle";
5315 ot->description =
"Hide or unhide the region";
5327 "Type of the region to toggle");
5381 ot->name =
"Flip Region";
5382 ot->idname =
"SCREEN_OT_region_flip";
5383 ot->description =
"Toggle the region's alignment (left/right or top/bottom)";
5413 ot->name =
"Expand/Collapse Header Menus";
5414 ot->idname =
"SCREEN_OT_header_toggle_menus";
5415 ot->description =
"Expand or collapse the header pull-down menus";
5437 ptr = layout->
op(
"SCREEN_OT_area_join",
5438 IFACE_(
"Move/Split Area"),
5445 layout->
op(
"SCREEN_OT_screen_full_area",
5450 ptr = layout->
op(
"SCREEN_OT_screen_full_area",
5458 layout->
op(
"SCREEN_OT_area_dupli", std::nullopt, ICON_NONE);
5460 layout->
op(
"SCREEN_OT_area_close", std::nullopt, ICON_X);
5482 col->op(
"SCREEN_OT_header_toggle_menus",
5517 IFACE_(
"Flip to Bottom");
5522 layout->
op(
"SCREEN_OT_region_flip", but_flip_str, ICON_NONE);
5573 layout->
op(
"SCREEN_OT_region_toggle",
IFACE_(
"Hide"), ICON_NONE);
5590 ot->name =
"Region";
5591 ot->description =
"Display region context menu";
5592 ot->idname =
"SCREEN_OT_region_context_menu";
5609 bool from_anim_edit)
5614 switch (spacetype) {
5654 if ((redraws &
TIME_CLIPS) || from_anim_edit) {
5695 switch (spacetype) {
5708 switch (spacetype) {
5794#ifdef PROFILE_AUDIO_SYNC
5795 static int old_frame = 0;
5820 if (scene_eval ==
nullptr) {
5830 scene->
r.
cfra =
round(time * scene->frames_per_second());
5832#ifdef PROFILE_AUDIO_SYNC
5833 newfra_int = scene->
r.
cfra;
5834 if (newfra_int < old_frame) {
5835 printf(
"back -%d jump detected, frame %d!\n", old_frame - newfra_int, old_frame);
5837 else if (newfra_int > old_frame + 1) {
5838 printf(
"forward +%d jump detected, frame %d!\n", newfra_int - old_frame, old_frame);
5841 old_frame = newfra_int;
5849 double delta_frames = wt->
time_delta * scene->frames_per_second();
5854 if (delta_frames < 1.0) {
5860 delta_frames = 1.0f;
5868 const int step = delta_frames;
5932#ifdef PROFILE_AUDIO_SYNC
5933 old_frame = scene->
r.
cfra;
5955 bool redraw =
false;
5956 if (region == sad->
region) {
5991 wt->
time_step = (1.0 / scene->frames_per_second());
5999 ot->name =
"Animation Step";
6000 ot->description =
"Step through animation by position";
6001 ot->idname =
"SCREEN_OT_animation_step";
6025 const bool is_playing = screen !=
nullptr;
6026 bool playback_sync =
false;
6027 int play_direction = 0;
6174 ot->name =
"Play Animation";
6175 ot->description =
"Play animation";
6176 ot->idname =
"SCREEN_OT_animation_play";
6184 ot->srna,
"reverse",
false,
"Play in Reverse",
"Animation is played backwards");
6186 prop =
RNA_def_boolean(
ot->srna,
"sync",
false,
"Sync",
"Drop frames to maintain framerate");
6203 if (restore_start_frame) {
6210 if (restore_start_frame) {
6213 scene->
r.
cfra = frame;
6224 ot->name =
"Cancel Animation";
6225 ot->description =
"Cancel animation, returning to the original frame";
6226 ot->idname =
"SCREEN_OT_animation_cancel";
6237 "Restore the frame when animation was initialized");
6270 printf(
"box select do select\n");
6273 printf(
"box select deselect\n");
6276 printf(
"box select do something\n");
6285 ot->name =
"Box Select";
6286 ot->idname =
"SCREEN_OT_box_select";
6297 RNA_def_int(
ot->srna,
"event_type", 0, INT_MIN, INT_MAX,
"Event Type",
"", INT_MIN, INT_MAX);
6317 if (area_iter->full) {
6335 ot->name =
"Back to Previous Screen";
6336 ot->description =
"Revert back to the original screen layout, before fullscreen area overlay";
6337 ot->idname =
"SCREEN_OT_back_to_previous";
6387 const char *section_name;
6389 return fmt::format(fmt::runtime(
TIP_(
"Show {} preferences")), section_name);
6401 ot->name =
"Open Preferences...";
6402 ot->description =
"Edit user preferences and system settings";
6403 ot->idname =
"SCREEN_OT_userpref_show";
6415 "Section to activate in the Preferences");
6442 bool driven, special;
6444 C, &
ptr, prop, index,
nullptr,
nullptr, &driven, &special);
6476 ot->name =
"Show Drivers Editor";
6477 ot->description =
"Show drivers editor in a separate window";
6478 ot->idname =
"SCREEN_OT_drivers_editor_show";
6504 ot->name =
"Show Info Log";
6505 ot->description =
"Show info log in a separate window";
6506 ot->idname =
"SCREEN_OT_info_log_show";
6536 ot->name =
"New Screen";
6537 ot->description =
"Add a new screen";
6538 ot->idname =
"SCREEN_OT_new";
6565 ot->name =
"Delete Screen";
6566 ot->description =
"Delete active screen";
6567 ot->idname =
"SCREEN_OT_delete";
6591#define TIMESTEP (1.0f / 60.0f)
6596 if (region->
runtime->regiontimer ==
nullptr &&
6599 region = region->
prev;
6602 if (region->
runtime->regiontimer) {
6604 region->
runtime->regiontimer->customdata);
6613 CLAMP(alpha, 0.0f, 1.0f);
6645 region->
runtime->regiontimer =
nullptr;
6653 if (region->
runtime->regiontimer) {
6680 region->
runtime->regiontimer->customdata = rgi;
6713 ot->name =
"Region Alpha";
6714 ot->idname =
"SCREEN_OT_region_blend";
6715 ot->description =
"Blend in and out overlapping region";
6762 for (
int i = 1;
i < item_len;
i++) {
6764 if ((item_test->
value >> 16) == space_type) {
6781 ot->name =
"Cycle Space Type Set";
6782 ot->description =
"Set the space type or cycle subtype";
6783 ot->idname =
"SCREEN_OT_space_type_set_or_cycle";
6803 {0,
nullptr, 0,
nullptr,
nullptr},
6822 const char *propname;
6828 propname =
"context";
6832 propname =
"active_section";
6863 ot->name =
"Cycle Space Context";
6864 ot->description =
"Cycle through the editor context by activating the next/previous one";
6865 ot->idname =
"SCREEN_OT_space_context_cycle";
6878 "Direction to cycle through");
6901 if (ordered.
size() == 1) {
6908 switch (direction) {
6910 workspace_dst =
reinterpret_cast<WorkSpace *
>(index == 0 ? ordered.
last() :
6911 ordered[index - 1]);
6914 workspace_dst =
reinterpret_cast<WorkSpace *
>(
6915 index == ordered.
index_range().last() ? ordered.
first() : ordered[index + 1]);
6929 ot->name =
"Cycle Workspace";
6930 ot->description =
"Cycle through workspaces";
6931 ot->idname =
"SCREEN_OT_workspace_cycle";
6944 "Direction to cycle through");
7018 {0,
nullptr, 0,
nullptr,
nullptr},
7072 return fmt::format(fmt::runtime(
TIP_(
"Link {}")), dragged_scene_name);
7074 return fmt::format(fmt::runtime(
TIP_(
"Pack {}")), dragged_scene_name);
7076 return fmt::format(fmt::runtime(
TIP_(
"Append {}")), dragged_scene_name);
7078 return fmt::format(fmt::runtime(
TIP_(
"Append (Reuse) {}")), dragged_scene_name);
7081 return fmt::format(fmt::runtime(
TIP_(
"Set {} as active")), dragged_scene_name);
7101 "SCENE_OT_drop_scene_asset",
@ BKE_CB_EVT_ANIMATION_PLAYBACK_PRE
@ BKE_CB_EVT_ANIMATION_PLAYBACK_POST
void BKE_callback_exec_id_depsgraph(Main *bmain, ID *id, Depsgraph *depsgraph, eCbEvent evt)
WorkSpace * CTX_wm_workspace(const bContext *C)
SpaceImage * CTX_wm_space_image(const bContext *C)
bScreen * CTX_wm_screen(const bContext *C)
Mask * CTX_data_edit_mask(const bContext *C)
SpaceFile * CTX_wm_space_file(const bContext *C)
PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type)
SpaceNode * CTX_wm_space_node(const bContext *C)
void CTX_wm_operator_poll_msg_set(bContext *C, const char *msg)
Depsgraph * CTX_data_ensure_evaluated_depsgraph(const bContext *C)
ScrArea * CTX_wm_area(const bContext *C)
wmWindow * CTX_wm_window(const bContext *C)
Object * CTX_data_active_object(const bContext *C)
SpaceLink * CTX_wm_space_data(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
SpaceSeq * CTX_wm_space_seq(const bContext *C)
Object * CTX_data_edit_object(const bContext *C)
void CTX_wm_window_set(bContext *C, wmWindow *win)
Main * CTX_data_main(const bContext *C)
void CTX_wm_area_set(bContext *C, ScrArea *area)
void CTX_wm_region_set(bContext *C, ARegion *region)
RegionView3D * CTX_wm_region_view3d(const bContext *C)
ARegion * CTX_wm_region(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
Scene * CTX_data_sequencer_scene(const bContext *C)
ViewLayer * CTX_data_view_layer(const bContext *C)
BMEditMesh * BKE_editmesh_from_object(Object *ob)
Return the BMEditMesh for a given object.
FCurve * BKE_fcurve_find_by_rna_context_ui(bContext *C, const PointerRNA *ptr, PropertyRNA *prop, int rnaindex, AnimData **r_animdata, bAction **r_action, bool *r_driven, bool *r_special)
void BKE_icon_changed(int icon_id)
ViewLayer * BKE_view_layer_default_render(const Scene *scene)
bool BKE_id_is_editable(const Main *bmain, const ID *id)
blender::Vector< ID * > BKE_id_ordered_list(const ListBase *lb)
struct MaskLayer * BKE_mask_layer_active(struct Mask *mask)
General operations, lookup, etc. for blender objects.
bool BKE_object_pose_context_check(const Object *ob)
Object * BKE_object_pose_armature_get(Object *ob)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BKE_scene_graph_evaluated_ensure(Depsgraph *depsgraph, Main *bmain)
void BKE_scene_frame_set(Scene *scene, float frame)
Depsgraph * BKE_scene_ensure_depsgraph(Main *bmain, Scene *scene, ViewLayer *view_layer)
float BKE_scene_frame_get(const Scene *scene)
Depsgraph * BKE_scene_get_depsgraph(const Scene *scene, const ViewLayer *view_layer)
void BKE_screen_remove_unused_scrverts(bScreen *screen)
void BKE_screen_remove_unused_scredges(bScreen *screen)
void BKE_screen_remove_double_scrverts(bScreen *screen)
void BKE_spacedata_freelist(ListBase *lb)
ScrEdge * BKE_screen_find_edge(const bScreen *screen, ScrVert *v1, ScrVert *v2)
ScrArea ScrArea * BKE_screen_find_area_xy(const bScreen *screen, int spacetype, const int xy[2]) ATTR_NONNULL(1
void BKE_screen_remove_double_scredges(bScreen *screen)
ARegion * BKE_area_find_region_type(const ScrArea *area, int region_type)
ARegion * BKE_area_region_copy(const SpaceType *st, const ARegion *region)
double BKE_sound_sync_scene(struct Scene *scene)
void BKE_sound_init(struct Main *bmain)
void BKE_sound_stop_scene(struct Scene *scene)
void BKE_sound_play_scene(struct Scene *scene)
WorkSpaceLayout * BKE_workspace_layout_find(const WorkSpace *workspace, const bScreen *screen) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
bScreen * BKE_workspace_active_screen_get(const WorkSpaceInstanceHook *hook) GETTER_ATTRS
WorkSpace * BKE_workspace_active_get(WorkSpaceInstanceHook *hook) GETTER_ATTRS
WorkSpaceLayout * BKE_workspace_active_layout_get(const WorkSpaceInstanceHook *hook) GETTER_ATTRS
void BLI_kdtree_nd_ free(KDTree *tree)
int BLI_findindex(const ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE bool BLI_listbase_is_empty(const ListBase *lb)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_listbase_count(const ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void void BLI_INLINE bool BLI_listbase_is_single(const ListBase *lb)
MINLINE int round_fl_to_int(float a)
MINLINE int min_ii(int a, int b)
MINLINE int square_i(int a)
MINLINE int max_ii(int a, int b)
void copy_qt_qt(float q[4], const float a[4])
MINLINE void copy_v2_v2_int(int r[2], const int a[2])
MINLINE int len_manhattan_v2v2_int(const int a[2], const int b[2]) ATTR_WARN_UNUSED_RESULT
bool BLI_rcti_isect_pt_v(const struct rcti *rect, const int xy[2])
int BLI_rcti_length_x(const rcti *rect, int x)
void BLI_rcti_translate(struct rcti *rect, int x, int y)
int BLI_rcti_length_y(const rcti *rect, int y)
void BLI_rcti_init(struct rcti *rect, int xmin, int xmax, int ymin, int ymax)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
Platform independent time functions.
double BLI_time_now_seconds(void)
#define IN_RANGE_INCL(a, b, c)
#define CTX_IFACE_(context, msgid)
#define BLT_I18NCONTEXT_ID_SCREEN
void DEG_id_tag_update(ID *id, unsigned int flags)
Scene * DEG_get_evaluated_scene(const Depsgraph *graph)
#define ID_IS_EDITABLE(_id)
#define ID_IS_OVERRIDE_LIBRARY(_id)
@ ASSET_IMPORT_APPEND_REUSE
#define OB_MODE_ALL_WEIGHT_PAINT
Object is a sort of wrapper for general info.
@ AREA_FLAG_REGION_SIZE_UPDATE
@ AREA_FLAG_ACTIONZONES_UPDATE
#define RGN_ALIGN_ENUM_FROM_MASK(align)
#define AREAMAP_FROM_SCREEN(screen)
@ RGN_ALIGN_HIDE_WITH_PREV
@ RGN_FLAG_RESIZE_RESPECT_BUTTON_SECTIONS
@ RGN_FLAG_NO_USER_RESIZE
@ RGN_FLAG_HIDDEN_BY_USER
@ FILE_TYPE_BLENDER_BACKUP
#define FRAMENUMBER_MIN_CLAMP(cfra)
@ ANIMFILTER_DATA_VISIBLE
void ED_drivers_editor_init(bContext *C, ScrArea *area)
bool ED_fileselect_is_file_browser(const SpaceFile *sfile)
bool ED_fileselect_is_asset_browser(const SpaceFile *sfile)
bool ED_space_image_show_uvedit(const SpaceImage *sima, Object *obedit)
Mesh * ED_mesh_context(bContext *C)
void ED_scene_fps_average_accumulate(Scene *scene, short fps_samples, double ltime) ATTR_NONNULL(1)
bool void ED_scene_fps_average_clear(Scene *scene) ATTR_NONNULL(1)
void ED_area_tag_redraw(ScrArea *area)
void ED_screen_global_areas_sync(wmWindow *win)
void ED_screen_animation_timer(bContext *C, Scene *scene, ViewLayer *view_layer, int redraws, int sync, int enable)
void ED_area_init(bContext *C, const wmWindow *win, ScrArea *area)
bool ED_workspace_layout_cycle(WorkSpace *workspace, short direction, bContext *C) ATTR_NONNULL()
bool ED_operator_screen_mainwinactive(bContext *C)
int ED_area_max_regionsize(const ScrArea *area, const ARegion *scale_region, const AZEdge edge)
void ED_region_toggle_hidden(bContext *C, ARegion *region)
int ED_area_global_min_size_y(const ScrArea *area)
ScrArea * ED_area_find_under_cursor(const bContext *C, int spacetype, const int event_xy[2])
#define ED_screen_verts_iter(win, screen, vert_name)
#define ED_screen_areas_iter(win, screen, area_name)
bool ED_operator_screenactive(bContext *C)
void ED_area_tag_redraw_no_rebuild(ScrArea *area)
int ED_area_global_max_size_y(const ScrArea *area)
bool ED_area_is_global(const ScrArea *area)
void ED_area_swapspace(bContext *C, ScrArea *sa1, ScrArea *sa2)
void ED_region_tag_redraw_no_rebuild(ARegion *region)
bool ED_operator_screenactive_nobackground(bContext *C)
bool ED_operator_region_view3d_active(bContext *C)
void ED_region_visibility_change_update(bContext *C, ScrArea *area, ARegion *region)
bool ED_operator_areaactive(bContext *C)
ScrArea * ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, short state)
void ED_area_update_region_sizes(wmWindowManager *wm, wmWindow *win, ScrArea *area)
ScrArea * ED_screen_temp_space_open(bContext *C, const char *title, eSpace_Type space_type, int display_type, bool dialog) ATTR_NONNULL(1)
void ED_workspace_status_text(bContext *C, const char *str)
void ED_update_for_newframe(Main *bmain, Depsgraph *depsgraph)
WorkSpaceLayout * ED_workspace_layout_duplicate(Main *bmain, WorkSpace *workspace, const WorkSpaceLayout *layout_old, wmWindow *win) ATTR_NONNULL()
void ED_region_visibility_change_update_ex(bContext *C, ScrArea *area, ARegion *region, bool is_hidden, bool do_init)
void ED_region_tag_redraw(ARegion *region)
void ED_region_remove(bContext *C, ScrArea *area, ARegion *region)
void ED_screen_full_prevspace(bContext *C, ScrArea *area)
@ SPACE_CONTEXT_CYCLE_NEXT
@ SPACE_CONTEXT_CYCLE_PREV
@ ANIMPLAY_FLAG_USE_NEXT_FRAME
bool ED_view3d_context_user_region(bContext *C, View3D **r_v3d, ARegion **r_region)
bool ED_view3d_lock(RegionView3D *rv3d)
char ED_view3d_lock_view_from_index(int index)
void ED_view3d_lastview_store(RegionView3D *rv3d)
void ED_view3d_quadview_update(ScrArea *area, ARegion *region, bool do_clip)
bool GPU_mem_stats_supported()
Read Guarded memory(de)allocation.
#define UI_REGION_OVERLAP_MARGIN
bool UI_drop_color_poll(bContext *C, wmDrag *drag, const wmEvent *event)
void UI_popup_menu_end(bContext *C, uiPopupMenu *pup)
uiPopupMenu * UI_popup_menu_begin(bContext *C, const char *title, int icon) ATTR_NONNULL()
#define UI_AZONESPOTW_RIGHT
uiBut * UI_context_active_but_prop_get(const bContext *C, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index)
uiLayout * UI_popup_menu_layout(uiPopupMenu *pup)
void UI_drop_color_copy(bContext *C, wmDrag *drag, wmDropBox *drop)
bool UI_region_button_sections_is_inside_x(const ARegion *region, const int mval_x)
void UI_view2d_curRect_validate(View2D *v2d)
char UI_view2d_mouse_in_scrollers_ex(const ARegion *region, const View2D *v2d, const int xy[2], int *r_scroll) ATTR_NONNULL(1
float UI_view2d_view_to_region_y(const View2D *v2d, float y)
#define V2D_SCROLL_HIDE_WIDTH
float UI_view2d_view_to_region_x(const View2D *v2d, float x)
#define V2D_SCROLL_HIDE_HEIGHT
#define ND_SPACE_SEQUENCER
#define ND_SPACE_SPREADSHEET
@ WM_TIMER_TAGGED_FOR_REMOVAL
void ANIM_anim_channels_select_set(bAnimContext *ac, eAnimChannels_SetFlag sel)
void ANIM_set_active_channel(bAnimContext *ac, void *data, eAnimCont_Types datatype, eAnimFilter_Flags filter, void *channel_data, eAnim_ChannelType channel_type)
void ANIM_animdata_freelist(ListBase *anim_data)
bool ANIM_nla_mapping_allowed(const bAnimListElem *ale)
bool ANIM_animdata_get_context(const bContext *C, bAnimContext *ac)
void region_toggle_hidden(bContext *C, ARegion *region, const bool do_fade)
void ED_area_data_copy(ScrArea *area_dst, ScrArea *area_src, const bool do_free)
ATTR_WARN_UNUSED_RESULT const BMVert * v2
BPy_StructRNA * depsgraph
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
bool closest(btVector3 &v)
const T & last(const int64_t n=0) const
IndexRange index_range() const
int64_t first_index_of(const T &value) const
static float is_left(const float2 &p0, const float2 &p1, const float2 &p2)
VecBase< float, D > step(VecOp< float, D >, VecOp< float, D >) RET
void mask_to_keylist(bDopeSheet *, MaskLayer *masklay, AnimKeylist *keylist)
const ActKeyColumn * ED_keylist_find_prev(const AnimKeylist *keylist, const float cfra)
void fcurve_to_keylist(AnimData *adt, FCurve *fcu, AnimKeylist *keylist, const int saction_flag, blender::float2 range, const bool use_nla_remapping)
void scene_to_keylist(bDopeSheet *ads, Scene *sce, AnimKeylist *keylist, const int saction_flag, blender::float2 range)
void ob_to_keylist(bDopeSheet *ads, Object *ob, AnimKeylist *keylist, const int saction_flag, blender::float2 range)
void grease_pencil_data_block_to_keylist(AnimData *adt, const GreasePencil *grease_pencil, AnimKeylist *keylist, const int saction_flag, const bool active_layer_only)
void ED_keylist_prepare_for_direct_access(AnimKeylist *keylist)
void summary_to_keylist(bAnimContext *ac, AnimKeylist *keylist, const int saction_flag, blender::float2 range)
AnimKeylist * ED_keylist_create()
void ED_keylist_free(AnimKeylist *keylist)
const ActKeyColumn * ED_keylist_find_next(const AnimKeylist *keylist, const float cfra)
void * MEM_callocN(size_t len, const char *str)
void MEM_freeN(void *vmemh)
static wmOperatorStatus box_select_exec(bContext *C, wmOperator *op)
ccl_device_inline float2 fabs(const float2 a)
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
ListBase get_editable_fcurves(bAnimContext &ac)
Object * context_active_object(const bContext *C)
bool has_playback_animation(const Scene *scene)
void sync_active_scene_and_time_with_scene_strip(bContext &C)
VecBase< int32_t, 2 > int2
Object * ED_pose_object_from_context(bContext *C)
void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values)
void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value)
int RNA_property_enum_step(const bContext *C, PointerRNA *ptr, PropertyRNA *prop, int from_value, int step)
void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_enum_name_gettexted(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **r_name)
int RNA_int_get(PointerRNA *ptr, const char *name)
float RNA_float_get(PointerRNA *ptr, const char *name)
void RNA_float_set(PointerRNA *ptr, const char *name, float value)
int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value)
void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values)
int RNA_enum_from_value(const EnumPropertyItem *item, const int value)
bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void RNA_property_enum_items(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
PointerRNA RNA_pointer_create_discrete(ID *id, StructRNA *type, void *data)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_int_vector(StructOrFunctionRNA *cont_, const char *identifier, const int len, const int *default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
const EnumPropertyItem rna_enum_region_type_items[]
const EnumPropertyItem rna_enum_space_type_items[]
const EnumPropertyItem rna_enum_preference_section_items[]
void screen_draw_region_scale_highlight(ARegion *region)
void screen_draw_split_preview(ScrArea *area, const eScreenAxis dir_axis, const float factor)
void screen_draw_move_highlight(const wmWindow *win, bScreen *screen, eScreenAxis dir_axis, float anim_factor)
void screen_draw_dock_preview(const wmWindow *win, ScrArea *source, ScrArea *target, AreaDockTarget dock_target, float factor, int x, int y, float anim_factor)
void screen_animate_area_highlight(wmWindow *win, bScreen *screen, const rcti *rect, float inner[4], float outline[4], float seconds)
void screen_draw_join_highlight(const wmWindow *win, ScrArea *sa1, ScrArea *sa2, eScreenDir dir, float anim_factor)
void area_getoffsets(ScrArea *sa_a, ScrArea *sa_b, const eScreenDir dir, int *r_offset1, int *r_offset2)
eScreenDir area_getorientation(ScrArea *sa_a, ScrArea *sa_b)
bool screen_area_close(bContext *C, ReportList *reports, bScreen *screen, ScrArea *area)
ScrArea * area_split(const wmWindow *win, bScreen *screen, ScrArea *area, const eScreenAxis dir_axis, const float fac, const bool merge)
int screen_area_join(bContext *C, ReportList *reports, bScreen *screen, ScrArea *sa1, ScrArea *sa2)
ScrEdge * screen_geom_find_active_scredge(const wmWindow *win, const bScreen *screen, const int mx, const int my)
void screen_geom_select_connected_edge(const wmWindow *win, ScrEdge *edge)
bool screen_geom_edge_is_horizontal(ScrEdge *se)
ScrEdge * screen_geom_area_map_find_active_scredge(const ScrAreaMap *area_map, const rcti *bounds_rect, const int mx, const int my, int safety)
int screen_geom_area_height(const ScrArea *area)
#define AREA_DOCK_FADEOUT
void SCREEN_OT_screenshot(wmOperatorType *ot)
#define AREA_MOVE_LINE_FADEIN
void SCREEN_OT_screenshot_area(wmOperatorType *ot)
#define SCREEN_DIR_IS_VERTICAL(dir)
#define AREA_SPLIT_FADEOUT
#define AREA_CLOSE_FADEOUT
#define AREA_JOIN_FADEOUT
#define AREA_MOVE_LINE_FADEOUT
static bool blend_file_drop_poll(bContext *, wmDrag *drag, const wmEvent *)
static wmOperatorStatus screen_delete_exec(bContext *C, wmOperator *)
static wmOperatorStatus space_context_cycle_invoke(bContext *C, wmOperator *op, const wmEvent *)
static void area_join_dock_cb(const wmWindow *win, void *userdata)
static wmOperatorStatus frame_jump_delta_exec(bContext *C, wmOperator *op)
static void screen_animation_region_tag_redraw(bContext *C, ScrArea *area, ARegion *region, const Scene *scene, eScreen_Redraws_Flag redraws)
static float area_split_factor(bContext *C, sAreaJoinData *jd, const wmEvent *event)
static void view3d_localview_update_rv3d(RegionView3D *rv3d)
bool ED_operator_spreadsheet_active(bContext *C)
bool ED_operator_region_outliner_active(bContext *C)
static void stop_playback(bContext *C)
static void SCREEN_OT_area_options(wmOperatorType *ot)
bool ED_operator_editarmature(bContext *C)
static void screen_drop_scene_copy(bContext *C, wmDrag *drag, wmDropBox *drop)
static void area_dupli_fn(bScreen *, ScrArea *area, void *user_data)
static void screen_area_menu_items(ScrArea *area, uiLayout *layout)
static wmOperatorStatus area_split_modal(bContext *C, wmOperator *op, const wmEvent *event)
static bool ed_operator_posemode_exclusive_ex(bContext *C, Object *obact)
static wmOperatorStatus space_type_set_or_cycle_exec(bContext *C, wmOperator *op)
static void area_swap_cancel(bContext *C, wmOperator *op)
static void actionzone_exit(wmOperator *op)
static void SCREEN_OT_region_context_menu(wmOperatorType *ot)
static bool area_split_allowed(const ScrArea *area, const eScreenAxis dir_axis)
static void keymap_modal_set(wmKeyConfig *keyconf)
static void keylist_from_dopesheet(bContext &C, AnimKeylist &keylist)
static wmOperatorStatus area_split_exec(bContext *C, wmOperator *op)
static void SCREEN_OT_region_scale(wmOperatorType *ot)
static wmOperatorStatus area_swap_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void fullscreen_click_rcti_init(rcti *rect, const short, const short, const short x2, const short y2)
bool ED_operator_uvmap(bContext *C)
static wmOperatorStatus userpref_show_exec(bContext *C, wmOperator *op)
bool ED_operator_graphedit_active(bContext *C)
wmOperatorStatus ED_screen_animation_play(bContext *C, int sync, int mode)
bool ED_operator_action_active(bContext *C)
bool ED_operator_sequencer_active_editable(bContext *C)
bool ED_operator_animview_active(bContext *C)
static wmOperatorStatus repeat_history_exec(bContext *C, wmOperator *op)
bool ED_operator_node_editable(bContext *C)
static void SCREEN_OT_info_log_show(wmOperatorType *ot)
bool ED_operator_screen_mainwinactive(bContext *C)
static wmOperatorStatus area_join_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static bool area_split_menu_init(bContext *C, wmOperator *op)
static wmOperatorStatus header_toggle_menus_exec(bContext *C, wmOperator *)
AZone * ED_area_actionzone_find_xy(ScrArea *area, const int xy[2])
static void area_move_set_limits(wmWindow *win, bScreen *screen, const eScreenAxis dir_axis, int *bigger, int *smaller, bool *use_bigger_smaller_snap)
static void region_scale_validate_size(RegionMoveData *rmd)
void ED_reset_audio_device(bContext *C)
static wmOperatorStatus space_workspace_cycle_invoke(bContext *C, wmOperator *op, const wmEvent *)
static wmOperatorStatus drivers_editor_show_exec(bContext *C, wmOperator *op)
static bool keyframe_jump_poll(bContext *C)
static bool space_context_cycle_poll(bContext *C)
static void keylist_from_graph_editor(bContext &C, AnimKeylist &keylist)
static bool area_split_apply(bContext *C, wmOperator *op)
bool ED_operator_console_active(bContext *C)
static void context_cycle_prop_get(bScreen *screen, const ScrArea *area, PointerRNA *r_ptr, PropertyRNA **r_prop)
float ED_region_blend_alpha(ARegion *region)
static void area_move_out_draw_cb(const wmWindow *win, void *userdata)
static void SCREEN_OT_animation_play(wmOperatorType *ot)
static bool area_join_init(bContext *C, wmOperator *op, ScrArea *sa1, ScrArea *sa2)
static bool screen_drop_scene_poll(bContext *C, wmDrag *drag, const wmEvent *)
static wmOperatorStatus fullscreen_back_exec(bContext *C, wmOperator *op)
static void SCREEN_OT_workspace_cycle(wmOperatorType *ot)
bool ED_operator_object_active_only(bContext *C)
static wmOperatorStatus start_playback(bContext *C, int sync, int mode)
static void area_move_exit(bContext *C, wmOperator *op)
bool ED_operator_info_active(bContext *C)
static void area_join_dock_cb_window(sAreaJoinData *jd, wmOperator *op)
static wmOperatorStatus area_join_exec(bContext *C, wmOperator *op)
void ED_keymap_screen(wmKeyConfig *keyconf)
static bool operator_screenactive_norender(bContext *C)
static wmOperatorStatus area_dupli_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus screen_context_menu_invoke(bContext *C, wmOperator *, const wmEvent *)
static int area_snap_calc_location(const bScreen *screen, const enum AreaMoveSnapType snap_type, const int delta, const int origval, const eScreenAxis dir_axis, const int bigger, const int smaller)
bool ED_operator_sequencer_scene_editable(bContext *C)
static wmOperatorStatus area_swap_modal(bContext *C, wmOperator *op, const wmEvent *event)
static void SCREEN_OT_userpref_show(wmOperatorType *ot)
bool ED_operator_editable_mesh(bContext *C)
static void SCREEN_OT_actionzone(wmOperatorType *ot)
static void SCREEN_OT_time_jump(wmOperatorType *ot)
static void actionzone_apply(bContext *C, wmOperator *op, int type)
void ED_areas_do_frame_follow(bContext *C, bool center_view)
bool ED_operator_scene(bContext *C)
bool ED_operator_object_active_local_editable(bContext *C)
bool ED_operator_screenactive(bContext *C)
bool ED_operator_regionactive(bContext *C)
static void area_actionzone_get_rect(AZone *az, rcti *r_rect)
static bool actionzone_area_poll(bContext *C)
bool ED_operator_editsurfcurve_region_view3d(bContext *C)
static wmOperatorStatus screen_animation_step_invoke(bContext *C, wmOperator *, const wmEvent *event)
static float area_docking_snap(const float pos, const wmEvent *event)
static wmOperatorStatus info_log_show_exec(bContext *C, wmOperator *op)
static void screen_area_touch_menu_create(bContext *C, ScrArea *area)
static void region_scale_toggle_hidden(bContext *C, RegionMoveData *rmd)
static wmOperatorStatus frame_offset_exec(bContext *C, wmOperator *op)
static bool match_region_with_redraws(const ScrArea *area, eRegion_Type regiontype, eScreen_Redraws_Flag redraws, bool from_anim_edit)
static wmOperatorStatus screen_maximize_area_exec(bContext *C, wmOperator *op)
static void SCREEN_OT_back_to_previous(wmOperatorType *ot)
static void SCREEN_OT_keyframe_jump(wmOperatorType *ot)
static bool space_type_set_or_cycle_poll(bContext *C)
static bool ed_spacetype_test(bContext *C, int type)
static int area_join_cursor(sAreaJoinData *jd, const wmEvent *event)
bool ED_operator_object_active(bContext *C)
bool ED_operator_editsurfcurve(bContext *C)
static void SCREEN_OT_frame_jump(wmOperatorType *ot)
static wmOperatorStatus region_blend_invoke(bContext *C, wmOperator *, const wmEvent *event)
static void SCREEN_OT_area_close(wmOperatorType *ot)
static void SCREEN_OT_redo_last(wmOperatorType *ot)
@ SNAP_FRACTION_AND_ADJACENT
@ SNAP_BIGGER_SMALLER_ONLY
static void actionzone_cancel(bContext *, wmOperator *op)
static bool area_swap_init(wmOperator *op, const wmEvent *event)
static void area_move_apply(bContext *C, wmOperator *op)
bool ED_operator_editcurve_3d(bContext *C)
static std::string screen_drop_scene_tooltip(bContext *, wmDrag *drag, const int[2], wmDropBox *)
bool ED_operator_objectmode(bContext *C)
static wmOperatorStatus area_split_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static bool area_split_init(bContext *C, wmOperator *op)
bool ED_operator_sequencer_active(bContext *C)
static void SCREEN_OT_animation_step(wmOperatorType *ot)
static void SCREEN_OT_header_toggle_menus(wmOperatorType *ot)
bScreen * ED_screen_animation_no_scrub(const wmWindowManager *wm)
bool ED_operator_scene_editable(bContext *C)
bool ED_operator_asset_browsing_active(bContext *C)
static void SCREEN_OT_delete(wmOperatorType *ot)
bool ED_operator_objectmode_with_view3d_poll_msg(bContext *C)
static AZone * area_actionzone_refresh_xy(ScrArea *area, const int xy[2], const bool test_only)
bool ED_operator_image_active(bContext *C)
static void SCREEN_OT_space_type_set_or_cycle(wmOperatorType *ot)
static wmOperatorStatus frame_jump_exec(bContext *C, wmOperator *op)
void ED_operatortypes_screen()
bool ED_operator_view3d_active(bContext *C)
void ED_screens_region_flip_menu_create(bContext *C, uiLayout *layout, void *)
static const EnumPropertyItem prop_direction_items[]
static wmOperatorStatus spacedata_cleanup_exec(bContext *C, wmOperator *op)
bool ED_operator_node_active(bContext *C)
static wmOperatorStatus region_scale_modal(bContext *C, wmOperator *op, const wmEvent *event)
static void SCREEN_OT_screen_full_area(wmOperatorType *ot)
static wmOperatorStatus redo_last_invoke(bContext *C, wmOperator *, const wmEvent *)
static bool azone_clipped_rect_calc(const AZone *az, rcti *r_rect_clip)
static bool repeat_history_poll(bContext *C)
bool ED_operator_posemode_local(bContext *C)
static void screen_modal_action_end()
static void SCREEN_OT_frame_offset(wmOperatorType *ot)
static wmOperatorStatus repeat_last_exec(bContext *C, wmOperator *)
static void area_docking_apply(bContext *C, wmOperator *op)
static ScrArea * screen_actionzone_area(bScreen *screen, const AZone *az)
static void area_move_draw_cb(const wmWindow *win, void *userdata)
bool ED_operator_nla_active(bContext *C)
static AZone * screen_actionzone_find_xy(bScreen *screen, const int xy[2])
bool ED_operator_object_active_local_editable_ex(bContext *C, const Object *ob)
bool ED_operator_screenactive_nobackground(bContext *C)
bool ED_operator_uvedit_space_image(bContext *C)
static void region_scale_exit(wmOperator *op)
static void SCREEN_OT_space_context_cycle(wmOperatorType *ot)
bool ED_operator_region_view3d_active(bContext *C)
bool ED_operator_object_active_editable(bContext *C)
static wmOperatorStatus screen_new_exec(bContext *C, wmOperator *)
static void area_join_update_data(bContext *C, sAreaJoinData *jd, const wmEvent *event)
bool ED_operator_posemode_exclusive(bContext *C)
static wmOperatorStatus region_flip_exec(bContext *C, wmOperator *)
bScreen * ED_screen_animation_playing(const wmWindowManager *wm)
static bool region_toggle_poll(bContext *C)
static ScrEdge * area_findsharededge(bScreen *screen, ScrArea *area, ScrArea *sb)
static void region_scale_draw_cb(const wmWindow *, void *userdata)
static wmOperatorStatus repeat_history_invoke(bContext *C, wmOperator *op, const wmEvent *)
static wmOperatorStatus area_join_modal(bContext *C, wmOperator *op, const wmEvent *event)
bool ED_operator_editcurve(bContext *C)
static void area_split_exit(bContext *C, wmOperator *op)
static bool area_close_poll(bContext *C)
static void SCREEN_OT_area_swap(wmOperatorType *ot)
static void area_swap_exit(bContext *C, wmOperator *op)
static wmOperatorStatus region_quadview_exec(bContext *C, wmOperator *op)
bool ED_operator_areaactive(bContext *C)
bool ED_operator_editmesh_region_view3d(bContext *C)
bool ED_operator_file_browsing_active(bContext *C)
static void SCREEN_OT_area_split(wmOperatorType *ot)
bool ED_operator_active_screen_and_scene(bContext *C)
void ED_region_visibility_change_update_animated(bContext *C, ScrArea *area, ARegion *region)
AZone * ED_area_azones_update(ScrArea *area, const int xy[2])
bool ED_operator_object_active_editable_mesh(bContext *C)
static wmOperatorStatus screen_set_exec(bContext *C, wmOperator *op)
static void SCREEN_OT_spacedata_cleanup(wmOperatorType *ot)
static wmOperatorStatus actionzone_modal(bContext *C, wmOperator *op, const wmEvent *event)
bool ED_operator_posemode_context(bContext *C)
static void SCREEN_OT_repeat_history(wmOperatorType *ot)
bool ED_operator_posemode(bContext *C)
bool ED_operator_editmball(bContext *C)
static void SCREEN_OT_new(wmOperatorType *ot)
static void SCREEN_OT_animation_cancel(wmOperatorType *ot)
static wmOperatorStatus screen_animation_play_exec(bContext *C, wmOperator *op)
void ED_screens_footer_tools_menu_create(bContext *C, uiLayout *layout, void *)
bool ED_operator_camera_poll(bContext *C)
static void SCREEN_OT_area_dupli(wmOperatorType *ot)
#define KM_MODAL_SNAP_OFF
bool ED_operator_file_active(bContext *C)
static void area_split_preview_update_cursor(bContext *C, wmOperator *op)
static bool screen_animation_region_supports_time_follow(eSpace_Type spacetype, eRegion_Type regiontype)
static void SCREEN_OT_region_quadview(wmOperatorType *ot)
static void SCREEN_OT_screen_set(wmOperatorType *ot)
static AreaDockTarget area_docking_target(sAreaJoinData *jd, const wmEvent *event)
bool ED_operator_editmesh_view3d(bContext *C)
static wmOperatorStatus area_move_modal(bContext *C, wmOperator *op, const wmEvent *event)
static void area_split_cancel(bContext *C, wmOperator *op)
static bool screen_active_editable(bContext *C)
bool ED_operator_object_active_local_editable_posemode_exclusive(bContext *C)
static void area_move_apply_do(bContext *C, int delta, const int origval, const eScreenAxis dir_axis, const int bigger, const int smaller, const enum AreaMoveSnapType snap_type)
static wmOperatorStatus actionzone_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void region_scale_cancel(bContext *, wmOperator *op)
bool ED_operator_editsurf(bContext *C)
static void SCREEN_OT_repeat_last(wmOperatorType *ot)
static wmOperatorStatus area_move_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static bool area_join_apply(bContext *C, wmOperator *op)
static bool is_header_azone_location(ScrArea *area, const wmEvent *event)
static void region_blend_end(bContext *C, ARegion *region, const bool is_running)
static void SCREEN_OT_drivers_editor_show(wmOperatorType *ot)
bool ED_operator_object_active_editable_ex(bContext *C, const Object *ob)
static void SCREEN_OT_area_move(wmOperatorType *ot)
static void screen_modal_action_begin()
static void SCREEN_OT_marker_jump(wmOperatorType *ot)
bool ED_operator_editlattice(bContext *C)
bool ED_operator_outliner_active_no_editobject(bContext *C)
static bool region_flip_poll(bContext *C)
void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *)
static wmOperatorStatus region_scale_invoke(bContext *C, wmOperator *op, const wmEvent *event)
bool ED_operator_editmesh(bContext *C)
static void ed_screens_statusbar_menu_create(uiLayout *layout, void *)
static bool ed_object_hidden(const Object *ob)
static wmOperatorStatus area_move_exec(bContext *C, wmOperator *op)
static const EnumPropertyItem space_context_cycle_direction[]
bool ED_operator_uvedit(bContext *C)
static void keylist_fallback_for_keyframe_jump(bContext &C, Scene *scene, AnimKeylist &keylist)
static wmOperatorStatus marker_jump_exec(bContext *C, wmOperator *op)
static void area_join_cancel(bContext *C, wmOperator *op)
bool ED_operator_outliner_active(bContext *C)
bool ED_operator_object_active_editable_font(bContext *C)
static wmOperatorStatus region_toggle_exec(bContext *C, wmOperator *op)
static void region_quadview_init_rv3d(ScrArea *area, ARegion *region, const char viewlock, const char view, const char persp)
static void SCREEN_OT_region_flip(wmOperatorType *ot)
static wmOperatorStatus screen_area_options_invoke(bContext *C, wmOperator *op, const wmEvent *event)
bool ED_operator_region_gizmo_active(bContext *C)
static void area_join_exit(bContext *C, wmOperator *op)
static bool area_move_init(bContext *C, wmOperator *op)
bool ED_operator_sequencer_scene(bContext *C)
static void area_move_cancel(bContext *C, wmOperator *op)
static void blend_file_drop_copy(bContext *, wmDrag *drag, wmDropBox *drop)
static wmOperatorStatus screen_animation_cancel_exec(bContext *C, wmOperator *op)
bool ED_operator_objectmode_poll_msg(bContext *C)
static bool screen_maximize_area_poll(bContext *C)
static void SCREEN_OT_region_blend(wmOperatorType *ot)
bool ED_operator_buttons_active(bContext *C)
static void area_join_draw_cb(const wmWindow *win, void *userdata)
static ScrEdge * screen_area_edge_from_cursor(const bContext *C, const int cursor[2], ScrArea **r_sa1, ScrArea **r_sa2)
static wmOperatorStatus area_swap_exec(bContext *C, wmOperator *op)
static wmOperatorStatus keyframe_jump_exec(bContext *C, wmOperator *op)
static void SCREEN_OT_region_toggle(wmOperatorType *ot)
static wmOperatorStatus area_close_exec(bContext *C, wmOperator *op)
static bool area_dupli_open(bContext *C, ScrArea *area, const blender::int2 position)
static void SCREEN_OT_area_join(wmOperatorType *ot)
bool ED_operator_editfont(bContext *C)
static void area_split_draw_cb(const wmWindow *, void *userdata)
static std::string userpref_show_get_description(bContext *C, wmOperatorType *, PointerRNA *ptr)
static bool is_split_edge(const int alignment, const AZEdge edge)
ARegionRuntimeHandle * runtime
AZScrollDirection direction
eAssetImportMethod method
struct RegionView3D * localvd
short butspacetype_subtype
ScrGlobalAreaData * global
double lagging_frame_count
struct bNodeTree * edittree
WorkSpace * temp_workspace_store
struct wmTimer * animtimer
struct ARegion * active_region
AreaDockTarget dock_target
void * draw_dock_callback
AreaMoveSnapType snap_type
void operator_context_set(blender::wm::OpCallContext opcontext)
uiLayout & column(bool align)
void separator(float factor=1.0f, LayoutSeparatorType type=LayoutSeparatorType::Auto)
void menu_fn(blender::StringRefNull name, int icon, uiMenuCreateFunc func, void *arg)
PointerRNA op(wmOperatorType *ot, std::optional< blender::StringRef > name, int icon, blender::wm::OpCallContext context, eUI_Item_Flag flag)
void prop(PointerRNA *ptr, PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, std::optional< blender::StringRef > name_opt, int icon, std::optional< blender::StringRef > placeholder=std::nullopt)
AssetImportSettings import_settings
wmEventModifierFlag modifier
struct ReportList * reports
struct wmOperatorType * type
WindowManagerRuntimeHandle * runtime
struct wmEvent * eventstate
struct WorkSpaceInstanceHook * workspace_hook
void WM_operator_free_all_after(wmWindowManager *wm, wmOperator *op)
void WM_cursor_modal_set(wmWindow *win, int val)
void WM_cursor_set(wmWindow *win, int curs)
void WM_cursor_modal_restore(wmWindow *win)
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_drag_free_imported_drag_ID(Main *bmain, wmDrag *drag, wmDropBox *drop)
const char * WM_drag_get_item_name(wmDrag *drag)
int WM_drag_get_path_file_type(const wmDrag *drag)
bool WM_drag_is_ID_type(const wmDrag *drag, int idcode)
const char * WM_drag_get_single_path(const wmDrag *drag)
ID * WM_drag_get_local_ID_or_import_from_asset(const bContext *C, const wmDrag *drag, int idcode)
ListBase * WM_dropboxmap_find(const char *idname, int spaceid, int regionid)
wmDragAsset * WM_drag_get_asset_data(const wmDrag *drag, int idcode)
void * WM_draw_cb_activate(wmWindow *win, void(*draw)(const wmWindow *win, void *customdata), void *customdata)
void WM_draw_cb_exit(wmWindow *win, void *handle)
int WM_event_drag_threshold(const wmEvent *event)
bool WM_operator_repeat_check(const bContext *, wmOperator *op)
wmOperatorStatus WM_operator_repeat_last(bContext *C, wmOperator *op)
void WM_main_add_notifier(uint type, void *reference)
wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op)
void WM_event_modal_handler_region_replace(wmWindow *win, const ARegion *old_region, ARegion *new_region)
wmOperatorStatus WM_operator_repeat(bContext *C, wmOperator *op)
wmEvent * WM_event_add(wmWindow *win, const wmEvent *event_to_add)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void wm_event_init_from_window(wmWindow *win, wmEvent *event)
void WM_event_add_mousemove(wmWindow *win)
@ EVT_ACTIONZONE_FULLSCREEN
void WM_gesture_box_cancel(bContext *C, wmOperator *op)
wmOperatorStatus WM_gesture_box_modal(bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_gesture_box_invoke(bContext *C, wmOperator *op, const wmEvent *event)
wmKeyMap * WM_modalkeymap_ensure(wmKeyConfig *keyconf, const char *idname, const EnumPropertyItem *items)
void WM_modalkeymap_assign(wmKeyMap *km, const char *opname)
wmKeyMap * WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
void WM_operator_properties_border(wmOperatorType *ot)
std::string WM_operatortype_name(wmOperatorType *ot, PointerRNA *properties)
void WM_operatortype_append(void(*opfunc)(wmOperatorType *))
wmOperatorStatus WM_operator_redo_popup(bContext *C, wmOperator *op)
bool WM_operator_winactive(bContext *C)
wmOperator * WM_operator_last_redo(const bContext *C)
wmWindow * WM_window_open_temp(bContext *C, const char *title, int space_type, bool dialog)
void WM_window_native_pixel_coords(const wmWindow *win, int *x, int *y)
bool wm_cursor_position_get(wmWindow *win, int *r_x, int *r_y)
void wm_window_close(bContext *C, wmWindowManager *wm, wmWindow *win)
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)
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_rect_calc(const wmWindow *win, rcti *r_rect)
wmWindow * WM_window_find_by_area(wmWindowManager *wm, const ScrArea *area)
void WM_window_screen_rect_calc(const wmWindow *win, rcti *r_rect)
void WM_event_timer_remove(wmWindowManager *wm, wmWindow *, wmTimer *timer)
void WM_window_title(wmWindowManager *wm, wmWindow *win, const char *title)
WorkSpace * WM_window_get_active_workspace(const wmWindow *win)
bScreen * WM_window_get_active_screen(const wmWindow *win)