Blender V4.5
ED_screen.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2008 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "DNA_screen_types.h"
12#include "DNA_space_types.h"
13#include "DNA_userdef_types.h"
14#include "DNA_workspace_types.h"
15
16#include "ED_screen_types.hh"
17
18#include "WM_types.hh"
19
20#include "BLI_compiler_attrs.h"
21
22struct ARegion;
23struct AZone;
24struct Depsgraph;
25struct IDProperty;
26struct Main;
27struct MenuType;
28struct Scene;
29struct SpaceLink;
30struct WorkSpace;
32struct bContext;
33struct bScreen;
34struct rcti;
35struct uiBlock;
36struct uiLayout;
37struct wmKeyConfig;
40struct wmNotifier;
41struct wmOperatorType;
45struct wmWindow;
46struct wmWindowManager;
47
48/* regions */
54void ED_region_do_draw(bContext *C, ARegion *region);
55void ED_region_exit(bContext *C, ARegion *region);
60void ED_region_remove(bContext *C, ScrArea *area, ARegion *region);
61void ED_region_pixelspace(const ARegion *region);
65void ED_region_update_rect(ARegion *region);
70void ED_region_tag_redraw(ARegion *region);
71void ED_region_tag_redraw_partial(ARegion *region, const rcti *rct, bool rebuild);
80
84void ED_region_search_filter_update(const ScrArea *area, ARegion *region);
88const char *ED_area_region_search_filter_get(const ScrArea *area, const ARegion *region);
92int ED_area_max_regionsize(const ScrArea *area, const ARegion *scale_region, const AZEdge edge);
93
96 ARegion *region,
97 wmOperatorCallContext op_context,
98 const char *contexts[]);
99void ED_region_panels(const bContext *C, ARegion *region);
106 ARegion *region,
107 ListBase *paneltypes,
108 wmOperatorCallContext op_context,
109 const char *contexts[],
110 const char *category_override);
116 ARegion *region,
117 ListBase *paneltypes,
118 const char *contexts[],
119 const char *category_override);
120
121void ED_region_panels_layout(const bContext *C, ARegion *region);
122void ED_region_panels_draw(const bContext *C, ARegion *region);
123
124void ED_region_header_init(ARegion *region);
125void ED_region_header(const bContext *C, ARegion *region);
126void ED_region_header_layout(const bContext *C, ARegion *region);
127void ED_region_header_draw(const bContext *C, ARegion *region);
128/* Forward declare enum. */
129enum class uiButtonSectionsAlign : int8_t;
132 ARegion *region,
136 const ARegion *region,
138
139void ED_region_cursor_set(wmWindow *win, ScrArea *area, ARegion *region);
148 bContext *C, ScrArea *area, ARegion *region, bool is_hidden, bool do_init);
150/* `screen_ops.cc` */
151
156
157void ED_region_clear(const bContext *C, const ARegion *region, int /*ThemeColorID*/ colorid);
158
159void ED_region_info_draw(ARegion *region,
160 const char *text,
161 const float fill_color[4],
162 bool full_redraw);
164 const char *text_array[],
165 const float fill_color[4],
166 bool full_redraw);
168void ED_region_grid_draw(ARegion *region, float zoomx, float zoomy, float x0, float y0);
169float ED_region_blend_alpha(ARegion *region);
170const rcti *ED_region_visible_rect(ARegion *region);
174bool ED_region_is_overlap(int spacetype, int regiontype);
175
176int ED_region_snap_size_test(const ARegion *region);
177bool ED_region_snap_size_apply(ARegion *region, int snap_flag);
178
179/* message_bus callbacks */
181 wmMsgSubscribeKey *msg_key,
182 wmMsgSubscribeValue *msg_val);
184 wmMsgSubscribeKey *msg_key,
185 wmMsgSubscribeValue *msg_val);
186
192
193/* message bus */
194
199
200/* spaces */
201
206void ED_spacetypes_keymap(wmKeyConfig *keyconf);
210int ED_area_header_switchbutton(const bContext *C, uiBlock *block, int yco);
211
212/* areas */
220void ED_area_init(bContext *C, const wmWindow *win, ScrArea *area);
221void ED_area_exit(bContext *C, ScrArea *area);
223int ED_area_icon(const ScrArea *area);
229void ED_area_tag_redraw(ScrArea *area);
231void ED_area_tag_redraw_regiontype(ScrArea *area, int regiontype);
232void ED_area_tag_refresh(ScrArea *area);
237void ED_area_tag_region_size_update(ScrArea *area, ARegion *changed_region);
242AZone *ED_area_azones_update(ScrArea *area, const int mouse_xy[2]);
247void ED_area_status_text(ScrArea *area, const char *str);
251void ED_area_newspace(bContext *C, ScrArea *area, int type, bool skip_region_exit);
252void ED_area_prevspace(bContext *C, ScrArea *area);
253void ED_area_swapspace(bContext *C, ScrArea *sa1, ScrArea *sa2);
259int ED_area_global_size_y(const ScrArea *area);
260int ED_area_global_min_size_y(const ScrArea *area);
261int ED_area_global_max_size_y(const ScrArea *area);
262bool ED_area_is_global(const ScrArea *area);
274
279ScrArea *ED_area_find_under_cursor(const bContext *C, int spacetype, const int event_xy[2]);
280
281ScrArea *ED_screen_areas_iter_first(const wmWindow *win, const bScreen *screen);
282ScrArea *ED_screen_areas_iter_next(const bScreen *screen, const ScrArea *area);
288#define ED_screen_areas_iter(win, screen, area_name) \
289 for (ScrArea *area_name = ED_screen_areas_iter_first(win, screen); area_name != NULL; \
290 area_name = ED_screen_areas_iter_next(screen, area_name))
291#define ED_screen_verts_iter(win, screen, vert_name) \
292 for (ScrVert *vert_name = (win)->global_areas.vertbase.first ? \
293 (ScrVert *)(win)->global_areas.vertbase.first : \
294 (ScrVert *)(screen)->vertbase.first; \
295 vert_name != NULL; \
296 vert_name = (vert_name == (win)->global_areas.vertbase.last) ? \
297 (ScrVert *)(screen)->vertbase.first : \
298 vert_name->next)
299
303void ED_areas_do_frame_follow(bContext *C, bool center_view);
304
305/* screens */
306
310void ED_screens_init(bContext *C, Main *bmain, wmWindowManager *wm);
315
322void ED_screen_do_listen(bContext *C, const wmNotifier *note);
331bool ED_screen_change(bContext *C, bScreen *screen);
332void ED_screen_scene_change(bContext *C, wmWindow *win, Scene *scene, bool refresh_toolsystem);
337void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2]);
338void ED_screen_exit(bContext *C, wmWindow *window, bScreen *screen);
343void ED_screen_animation_timer(bContext *C, int redraws, int sync, int enable);
344void ED_screen_animation_timer_update(bScreen *screen, int redraws);
382 const char *title,
383 const rcti *rect_unscaled,
384 eSpace_Type space_type,
385 int display_type,
386 bool dialog) ATTR_NONNULL(1, 2, 3);
387void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *arg);
388void ED_screens_footer_tools_menu_create(bContext *C, uiLayout *layout, void *arg);
389void ED_screens_region_flip_menu_create(bContext *C, uiLayout *layout, void *arg);
393bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene);
394Scene *ED_screen_scene_find(const bScreen *screen, const wmWindowManager *wm);
400 const wmWindowManager *wm,
401 wmWindow **r_window);
403 const SpaceLink *sl,
404 bool only_visible);
405wmWindow *ED_screen_window_find(const bScreen *screen, const wmWindowManager *wm);
406
407/* workspaces */
408
409WorkSpace *ED_workspace_add(Main *bmain, const char *name) ATTR_NONNULL();
419bool ED_workspace_change(WorkSpace *workspace_new, bContext *C, wmWindowManager *wm, wmWindow *win)
420 ATTR_NONNULL();
425WorkSpace *ED_workspace_duplicate(WorkSpace *workspace_old, Main *bmain, wmWindow *win);
429bool ED_workspace_delete(WorkSpace *workspace, Main *bmain, bContext *C, wmWindowManager *wm)
430 ATTR_NONNULL();
443 Main *bmain,
444 WorkSpace *workspace,
445 WorkSpaceLayout *layout_new,
446 const WorkSpaceLayout *layout_fallback_base,
447 wmWindow *win) ATTR_NONNULL();
452 WorkSpace *workspace,
453 wmWindow *win,
454 const char *name) ATTR_NONNULL();
456 WorkSpace *workspace,
457 const WorkSpaceLayout *layout_old,
458 wmWindow *win) ATTR_NONNULL();
463bool ED_workspace_layout_delete(WorkSpace *workspace, WorkSpaceLayout *layout_old, bContext *C)
464 ATTR_NONNULL();
465bool ED_workspace_layout_cycle(WorkSpace *workspace, short direction, bContext *C) ATTR_NONNULL();
466
467void ED_workspace_status_text(bContext *C, const char *str);
468
470 WorkSpace *workspace_;
471 wmWindowManager *wm_;
472
473 public:
475
482 void item(std::string text, int icon1, int icon2 = 0);
483
489 void item_bool(std::string text, bool inverted, int icon1, int icon2 = 0);
490
496 void range(std::string text, int icon1, int icon2);
497
503 void opmodal(std::string text, const wmOperatorType *ot, int propvalue, bool inverted = false);
504};
505
506void ED_workspace_do_listen(bContext *C, const wmNotifier *note);
507
508/* anim */
512void ED_update_for_newframe(Main *bmain, Depsgraph *depsgraph);
513
524
525/* screen keymaps */
526/* called in `spacetypes.cc`. */
528/* called in `spacetypes.cc`. */
529void ED_keymap_screen(wmKeyConfig *keyconf);
534
535/* operators; context poll callbacks */
536
545
555
559
592
637
638/* `screen_user_menu.cc` */
639
642
650 const wmOperatorType *ot,
651 IDProperty *prop,
652 const char *op_prop_enum,
653 wmOperatorCallContext opcontext);
656 const char *context_data_path,
657 const char *prop_id,
658 int prop_index);
659
661 const char *ui_name,
662 const wmOperatorType *ot,
663 const IDProperty *prop,
664 const char *op_prop_enum,
665 wmOperatorCallContext opcontext);
666void ED_screen_user_menu_item_add_menu(ListBase *lb, const char *ui_name, const MenuType *mt);
668 const char *ui_name,
669 const char *context_data_path,
670 const char *prop_id,
671 int prop_index);
672
675
676/* Cache display helpers */
677
679void ED_region_cache_draw_curfra_label(int framenr, float x, float y);
681 ARegion *region, int num_segments, const int *points, int sfra, int efra);
682
683/* `area_utils.cc` */
684
693int ED_region_generic_tools_region_snap_size(const ARegion *region, int size, int axis);
694
695/* `area_query.cc` */
696
697bool ED_region_overlap_isect_x(const ARegion *region, int event_x);
698bool ED_region_overlap_isect_y(const ARegion *region, int event_y);
699bool ED_region_overlap_isect_xy(const ARegion *region, const int event_xy[2]);
700bool ED_region_overlap_isect_any_xy(const ScrArea *area, const int event_xy[2]);
701bool ED_region_overlap_isect_x_with_margin(const ARegion *region, int event_x, int margin);
702bool ED_region_overlap_isect_y_with_margin(const ARegion *region, int event_y, int margin);
704 const int event_xy[2],
705 int margin);
706
707bool ED_region_panel_category_gutter_calc_rect(const ARegion *region, rcti *r_region_gutter);
708bool ED_region_panel_category_gutter_isect_xy(const ARegion *region, const int event_xy[2]);
709
714bool ED_region_contains_xy(const ARegion *region, const int event_xy[2]);
722ARegion *ED_area_find_region_xy_visual(const ScrArea *area, int regiontype, const int event_xy[2]);
723
724/* `interface_region_hud.cc` */
725
726ARegionType *ED_area_type_hud(int space_type);
734ARegion *ED_area_type_hud_redo_region_find(const ScrArea *area, const ARegion *hud_region);
735
739enum {
740 ED_KEYMAP_UI = (1 << 1),
741 ED_KEYMAP_GIZMO = (1 << 2),
742 ED_KEYMAP_TOOL = (1 << 3),
748 ED_KEYMAP_GPENCIL = (1 << 10),
749 ED_KEYMAP_NAVBAR = (1 << 11),
751};
752
#define ATTR_NONNULL(...)
unsigned int uint
eSpace_Type
void ED_region_info_draw(ARegion *region, const char *text, const float fill_color[4], bool full_redraw)
Definition area.cc:3942
void ED_spacetypes_keymap(wmKeyConfig *keyconf)
bool ED_operator_spreadsheet_active(bContext *C)
ScrArea * ED_screen_areas_iter_next(const bScreen *screen, const ScrArea *area)
Definition area.cc:3846
bool ED_operator_region_outliner_active(bContext *C)
void ED_area_do_mgs_subscribe_for_tool_header(const wmRegionMessageSubscribeParams *params)
Definition area.cc:417
void ED_area_tag_redraw(ScrArea *area)
Definition area.cc:714
bool ED_operator_editarmature(bContext *C)
bool ED_region_overlap_isect_y(const ARegion *region, int event_y)
Definition area_query.cc:31
int ED_area_icon(const ScrArea *area)
int ED_region_snap_size_test(const ARegion *region)
Definition area.cc:4217
ARegionType * ED_area_type_hud(int space_type)
void ED_screen_global_areas_sync(wmWindow *win)
bUserMenu * ED_screen_user_menu_ensure(bContext *C)
bool ED_region_property_search(const bContext *C, ARegion *region, ListBase *paneltypes, const char *contexts[], const char *category_override)
Definition area.cc:3555
void ED_region_tag_refresh_ui(ARegion *region)
Definition area.cc:668
int ED_screen_area_active(const bContext *C)
void ED_area_init(bContext *C, const wmWindow *win, ScrArea *area)
Definition area.cc:2144
void ED_area_newspace(bContext *C, ScrArea *area, int type, bool skip_region_exit)
Definition area.cc:2693
bool ED_workspace_layout_cycle(WorkSpace *workspace, short direction, bContext *C) ATTR_NONNULL()
void ED_area_do_mgs_subscribe_for_tool_ui(const wmRegionMessageSubscribeParams *params)
Definition area.cc:432
bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene)
void ED_region_update_rect(ARegion *region)
Definition area.cc:2300
bool ED_operator_uvmap(bContext *C)
ScrArea * ED_screen_areas_iter_first(const wmWindow *win, const bScreen *screen)
Definition area.cc:3833
WorkSpaceLayout * ED_workspace_layout_add(Main *bmain, WorkSpace *workspace, wmWindow *win, const char *name) ATTR_NONNULL()
wmWindow * ED_screen_window_find(const bScreen *screen, const wmWindowManager *wm)
bool ED_region_overlap_isect_x(const ARegion *region, int event_x)
Definition area_query.cc:20
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)
ARegion * ED_area_type_hud_redo_region_find(const ScrArea *area, const ARegion *hud_region)
bool ED_operator_node_editable(bContext *C)
void ED_region_cursor_set(wmWindow *win, ScrArea *area, ARegion *region)
Definition area.cc:2315
bool ED_operator_screen_mainwinactive(bContext *C)
const char * ED_area_region_search_filter_get(const ScrArea *area, const ARegion *region)
Definition area.cc:846
bool ED_region_panel_category_gutter_isect_xy(const ARegion *region, const int event_xy[2])
Definition area_query.cc:82
bool ED_region_overlap_isect_xy_with_margin(const ARegion *region, const int event_xy[2], int margin)
ScrArea * ED_screen_temp_space_open(bContext *C, const char *title, const rcti *rect_unscaled, eSpace_Type space_type, int display_type, bool dialog) ATTR_NONNULL(1
void ED_region_do_listen(wmRegionListenerParams *params)
Definition area.cc:129
int ED_area_max_regionsize(const ScrArea *area, const ARegion *scale_region, const AZEdge edge)
Definition area.cc:783
void ED_region_cache_draw_cached_segments(ARegion *region, int num_segments, const int *points, int sfra, int efra)
Definition area.cc:4174
Scene * ED_screen_scene_find(const bScreen *screen, const wmWindowManager *wm)
int ED_area_global_size_y(const ScrArea *area)
Definition area.cc:3781
void ED_region_search_filter_update(const ScrArea *area, ARegion *region)
Definition area.cc:859
void ED_region_toggle_hidden(bContext *C, ARegion *region)
Definition area.cc:2377
void ED_reset_audio_device(bContext *C)
bool ED_operator_console_active(bContext *C)
float ED_region_blend_alpha(ARegion *region)
bool ED_operator_object_active_only(bContext *C)
ARegion * ED_area_find_region_xy_visual(const ScrArea *area, int regiontype, const int event_xy[2])
bool ED_operator_info_active(bContext *C)
WorkSpace * ED_workspace_duplicate(WorkSpace *workspace_old, Main *bmain, wmWindow *win)
int ED_area_global_min_size_y(const ScrArea *area)
Definition area.cc:3786
void ED_keymap_screen(wmKeyConfig *keyconf)
ScrArea * ED_screen_area_find_with_spacedata(const bScreen *screen, const SpaceLink *sl, bool only_visible)
bool ED_region_overlap_isect_any_xy(const ScrArea *area, const int event_xy[2])
Definition area_query.cc:48
void ED_screen_ensure_updated(bContext *C, wmWindowManager *wm, wmWindow *win)
ScrArea * ED_area_find_under_cursor(const bContext *C, int spacetype, const int event_xy[2])
Definition area.cc:3802
bool ED_operator_editable_mesh(bContext *C)
void ED_area_and_region_types_init(ScrArea *area)
Definition area.cc:2127
void ED_screen_scene_change(bContext *C, wmWindow *win, Scene *scene, bool refresh_toolsystem)
bool ED_region_contains_xy(const ARegion *region, const int event_xy[2])
void ED_region_floating_init(ARegion *region)
Definition area.cc:2305
void ED_areas_do_frame_follow(bContext *C, bool center_view)
bool ED_operator_scene(bContext *C)
void ED_area_status_text(ScrArea *area, const char *str)
Definition area.cc:872
bool ED_operator_object_active_local_editable(bContext *C)
bool ED_operator_screenactive(bContext *C)
void ED_screen_refresh(bContext *C, wmWindowManager *wm, wmWindow *win)
void ED_screen_full_restore(bContext *C, ScrArea *area)
bool ED_operator_regionactive(bContext *C)
Definition screen_ops.cc:98
bool ED_operator_editsurfcurve_region_view3d(bContext *C)
void ED_area_tag_redraw_no_rebuild(ScrArea *area)
Definition area.cc:723
void ED_screens_footer_tools_menu_create(bContext *C, uiLayout *layout, void *arg)
int ED_area_global_max_size_y(const ScrArea *area)
Definition area.cc:3791
void ED_region_panels(const bContext *C, ARegion *region)
Definition area.cc:3462
void ED_region_clear(const bContext *C, const ARegion *region, int colorid)
Definition area.cc:2927
void ED_workspace_do_listen(bContext *C, const wmNotifier *note)
void ED_region_header(const bContext *C, ARegion *region)
Definition area.cc:3750
ScrArea * ED_screen_full_newspace(bContext *C, ScrArea *area, int type)
const rcti * ED_region_visible_rect(ARegion *region)
Definition area.cc:4114
bool ED_operator_object_active(bContext *C)
bool ED_operator_editsurfcurve(bContext *C)
void ED_area_do_listen(wmSpaceTypeListenerParams *params)
Definition area.cc:161
bUserMenu ** ED_screen_user_menus_find(const bContext *C, uint *r_len)
void ED_screen_do_listen(bContext *C, const wmNotifier *note)
void ED_screens_init(bContext *C, Main *bmain, wmWindowManager *wm)
bUserMenuItem_Op * ED_screen_user_menu_item_find_operator(ListBase *lb, const wmOperatorType *ot, IDProperty *prop, const char *op_prop_enum, wmOperatorCallContext opcontext)
bool ED_operator_editcurve_3d(bContext *C)
bool ED_operator_objectmode(bContext *C)
void ED_region_header_init(ARegion *region)
Definition area.cc:3765
bool ED_area_is_global(const ScrArea *area)
Definition area.cc:3797
bool ED_operator_sequencer_active(bContext *C)
void ED_region_cache_draw_background(ARegion *region)
Definition area.cc:4125
void ED_area_swapspace(bContext *C, ScrArea *sa1, ScrArea *sa2)
Definition area.cc:2667
bScreen * ED_screen_animation_no_scrub(const wmWindowManager *wm)
bool ED_operator_scene_editable(bContext *C)
void ED_region_pixelspace(const ARegion *region)
Definition area.cc:123
bool ED_operator_asset_browsing_active(bContext *C)
void ED_area_offscreen_free(wmWindowManager *wm, wmWindow *win, ScrArea *area)
Definition area.cc:2283
void ED_region_header_draw(const bContext *C, ARegion *region)
Definition area.cc:3725
bool ED_operator_objectmode_with_view3d_poll_msg(bContext *C)
void ED_region_tag_redraw_no_rebuild(ARegion *region)
Definition area.cc:659
void ED_region_cache_draw_curfra_label(int framenr, float x, float y)
Definition area.cc:4138
int ED_area_headersize()
Definition area.cc:3770
bool ED_operator_image_active(bContext *C)
ScrArea * ED_area_offscreen_create(wmWindow *win, eSpace_Type space_type)
Definition area.cc:2242
void ED_operatortypes_screen()
void ED_screen_global_areas_refresh(wmWindow *win)
bool ED_operator_view3d_active(bContext *C)
void ED_area_tag_redraw_regiontype(ScrArea *area, int regiontype)
Definition area.cc:732
WorkSpaceLayout * ED_workspace_screen_change_ensure_unused_layout(Main *bmain, WorkSpace *workspace, WorkSpaceLayout *layout_new, const WorkSpaceLayout *layout_fallback_base, wmWindow *win) ATTR_NONNULL()
bool ED_screen_change(bContext *C, bScreen *screen)
Change the active screen.
bool ED_area_has_shared_border(ScrArea *a, ScrArea *b)
Definition area.cc:2089
void ED_region_panels_layout_ex(const bContext *C, ARegion *region, ListBase *paneltypes, wmOperatorCallContext op_context, const char *contexts[], const char *category_override)
Definition area.cc:3219
bool ED_operator_node_active(bContext *C)
bScreen * ED_screen_state_maximized_create(bContext *C)
bool ED_workspace_layout_delete(WorkSpace *workspace, WorkSpaceLayout *layout_old, bContext *C) ATTR_NONNULL()
void ED_screen_animation_timer(bContext *C, int redraws, int sync, int enable)
void ED_screen_restore_temp_type(bContext *C, ScrArea *area)
bool ED_operator_posemode_local(bContext *C)
bool ED_region_snap_size_apply(ARegion *region, int snap_flag)
Definition area.cc:4230
bool ED_region_is_overlap(int spacetype, int regiontype)
Definition area.cc:1490
void ED_region_header_with_button_sections(const bContext *C, ARegion *region, uiButtonSectionsAlign align)
Definition area.cc:3757
bool ED_workspace_delete(WorkSpace *workspace, Main *bmain, bContext *C, wmWindowManager *wm) ATTR_NONNULL()
bool ED_operator_nla_active(bContext *C)
void ED_region_tag_redraw_partial(ARegion *region, const rcti *rct, bool rebuild)
Definition area.cc:687
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)
void ED_region_info_draw_multiline(ARegion *region, const char *text_array[], const float fill_color[4], bool full_redraw)
Definition area.cc:3866
void ED_area_tag_region_size_update(ScrArea *area, ARegion *changed_region)
Definition area.cc:750
bool ED_operator_region_view3d_active(bContext *C)
void ED_screen_draw_edges(wmWindow *win)
bool ED_operator_object_active_editable(bContext *C)
bool ED_operator_posemode_exclusive(bContext *C)
WorkSpace * ED_workspace_add(Main *bmain, const char *name) ATTR_NONNULL()
void ED_region_visibility_change_update(bContext *C, ScrArea *area, ARegion *region)
Definition area.cc:2355
int ED_region_generic_tools_region_snap_size(const ARegion *region, int size, int axis)
Definition area_utils.cc:38
bScreen * ED_screen_animation_playing(const wmWindowManager *wm)
bUserMenuItem_Prop * ED_screen_user_menu_item_find_prop(ListBase *lb, const char *context_data_path, const char *prop_id, int prop_index)
void ED_region_do_layout(bContext *C, ARegion *region)
Definition area.cc:479
void ED_region_tag_redraw_cursor(ARegion *region)
Definition area.cc:652
bool ED_region_overlap_isect_xy(const ARegion *region, const int event_xy[2])
Definition area_query.cc:42
void ED_screen_exit(bContext *C, wmWindow *window, bScreen *screen)
bool ED_operator_editcurve(bContext *C)
void ED_area_type_hud_clear(wmWindowManager *wm, ScrArea *area_keep)
void ED_operatortypes_workspace()
bool ED_region_overlap_isect_x_with_margin(const ARegion *region, int event_x, int margin)
Definition area_query.cc:91
bool ED_operator_areaactive(bContext *C)
ScrArea * ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, short state)
bool ED_operator_editmesh_region_view3d(bContext *C)
bool ED_operator_file_browsing_active(bContext *C)
void ED_screen_user_menu_register()
void ED_area_update_region_sizes(wmWindowManager *wm, wmWindow *win, ScrArea *area)
Definition area.cc:2050
void ED_region_visibility_change_update_animated(bContext *C, ScrArea *area, ARegion *region)
void ED_area_tag_refresh(ScrArea *area)
Definition area.cc:743
void ED_screen_user_menu_item_add_operator(ListBase *lb, const char *ui_name, const wmOperatorType *ot, const IDProperty *prop, const char *op_prop_enum, wmOperatorCallContext opcontext)
void ED_region_generic_tools_region_message_subscribe(const wmRegionMessageSubscribeParams *params)
Definition area_utils.cc:26
bool ED_operator_object_active_editable_mesh(bContext *C)
void ED_area_exit(bContext *C, ScrArea *area)
bool ED_operator_posemode_context(bContext *C)
bool ED_operator_posemode(bContext *C)
int ED_region_global_size_y()
Definition area.cc:3861
bool ED_operator_editmball(bContext *C)
void ED_screen_animation_timer_update(bScreen *screen, int redraws)
void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2])
bool ED_operator_camera_poll(bContext *C)
void ED_area_do_refresh(bContext *C, ScrArea *area)
Definition area.cc:169
bool ED_operator_file_active(bContext *C)
blender::StringRefNull ED_area_name(const ScrArea *area)
bool ED_operator_editmesh_view3d(bContext *C)
@ ED_KEYMAP_NAVBAR
Definition ED_screen.hh:749
@ ED_KEYMAP_ASSET_SHELF
Definition ED_screen.hh:750
@ ED_KEYMAP_UI
Definition ED_screen.hh:740
@ ED_KEYMAP_ANIMATION
Definition ED_screen.hh:744
@ ED_KEYMAP_HEADER
Definition ED_screen.hh:746
@ ED_KEYMAP_TOOL
Definition ED_screen.hh:742
@ ED_KEYMAP_GPENCIL
Definition ED_screen.hh:748
@ ED_KEYMAP_GIZMO
Definition ED_screen.hh:741
@ ED_KEYMAP_VIEW2D
Definition ED_screen.hh:743
@ ED_KEYMAP_FRAMES
Definition ED_screen.hh:745
@ ED_KEYMAP_FOOTER
Definition ED_screen.hh:747
AZone * ED_area_azones_update(ScrArea *area, const int mouse_xy[2])
void ED_screen_user_menu_item_add_prop(ListBase *lb, const char *ui_name, const char *context_data_path, const char *prop_id, int prop_index)
bool ED_operator_object_active_local_editable_posemode_exclusive(bContext *C)
void ED_region_panels_layout(const bContext *C, ARegion *region)
Definition area.cc:3399
void ED_region_panels_init(wmWindowManager *wm, ARegion *region)
Definition area.cc:3469
void ED_screen_user_menu_item_add_menu(ListBase *lb, const char *ui_name, const MenuType *mt)
bool ED_region_panel_category_gutter_calc_rect(const ARegion *region, rcti *r_region_gutter)
Definition area_query.cc:60
void ED_workspace_status_text(bContext *C, const char *str)
Definition area.cc:1040
void ED_update_for_newframe(Main *bmain, Depsgraph *depsgraph)
void ED_region_image_metadata_panel_draw(ImBuf *ibuf, uiLayout *layout)
Definition area.cc:3963
bool ED_operator_editsurf(bContext *C)
void ED_region_tag_redraw_editor_overlays(ARegion *region)
Definition area.cc:675
void ED_workspace_scene_data_sync(WorkSpaceInstanceHook *hook, Scene *scene) ATTR_NONNULL()
ScrArea void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *arg)
WorkSpaceLayout * ED_workspace_layout_duplicate(Main *bmain, WorkSpace *workspace, const WorkSpaceLayout *layout_old, wmWindow *win) ATTR_NONNULL()
int ED_area_header_switchbutton(const bContext *C, uiBlock *block, int yco)
Definition area.cc:2886
void ED_region_header_draw_with_button_sections(const bContext *C, const ARegion *region, uiButtonSectionsAlign align)
Definition area.cc:3732
void ED_area_do_msg_notify_tag_refresh(bContext *C, wmMsgSubscribeKey *msg_key, wmMsgSubscribeValue *msg_val)
Definition area.cc:407
void ED_region_visibility_change_update_ex(bContext *C, ScrArea *area, ARegion *region, bool is_hidden, bool do_init)
Definition area.cc:2336
bool ED_operator_object_active_editable_ex(bContext *C, const Object *ob)
bool ED_operator_editlattice(bContext *C)
bool ED_operator_outliner_active_no_editobject(bContext *C)
void ED_region_do_draw(bContext *C, ARegion *region)
Definition area.cc:502
bool ED_operator_editmesh(bContext *C)
void ED_region_tag_redraw(ARegion *region)
Definition area.cc:639
bool ED_workspace_change(WorkSpace *workspace_new, bContext *C, wmWindowManager *wm, wmWindow *win) ATTR_NONNULL()
Change the active workspace.
void ED_region_message_subscribe(wmRegionMessageSubscribeParams *params)
Definition area.cc:4198
int ED_area_footersize()
Definition area.cc:3776
void ED_region_grid_draw(ARegion *region, float zoomx, float zoomy, float x0, float y0)
Definition area.cc:3970
bool ED_operator_uvedit(bContext *C)
bool ED_operator_outliner_active(bContext *C)
void ED_screens_region_flip_menu_create(bContext *C, uiLayout *layout, void *arg)
void ED_region_remove(bContext *C, ScrArea *area, ARegion *region)
bool ED_operator_object_active_editable_font(bContext *C)
bool ED_region_overlap_isect_y_with_margin(const ARegion *region, int event_y, int margin)
void ED_area_prevspace(bContext *C, ScrArea *area)
Definition area.cc:2860
void ED_region_do_msg_notify_tag_redraw(bContext *C, wmMsgSubscribeKey *msg_key, wmMsgSubscribeValue *msg_val)
Definition area.cc:384
bool ED_operator_region_gizmo_active(bContext *C)
bool ED_operator_objectmode_poll_msg(bContext *C)
void ED_region_panels_ex(const bContext *C, ARegion *region, wmOperatorCallContext op_context, const char *contexts[])
Definition area.cc:3451
bool ED_operator_buttons_active(bContext *C)
void ED_region_exit(bContext *C, ARegion *region)
void ED_region_panels_draw(const bContext *C, ARegion *region)
Definition area.cc:3405
void ED_region_header_layout(const bContext *C, ARegion *region)
Definition area.cc:3633
void ED_screen_user_menu_item_remove(ListBase *lb, bUserMenuItem *umi)
void ED_screen_full_prevspace(bContext *C, ScrArea *area)
Scene * ED_screen_scene_find_with_window(const bScreen *screen, const wmWindowManager *wm, wmWindow **r_window)
bUserMenuItem_Menu * ED_screen_user_menu_item_find_menu(ListBase *lb, const MenuType *mt)
void ED_area_type_hud_ensure(bContext *C, ScrArea *area)
eScreenCycle
Definition ED_screen.hh:754
@ SPACE_CONTEXT_CYCLE_NEXT
Definition ED_screen.hh:756
@ SPACE_CONTEXT_CYCLE_PREV
Definition ED_screen.hh:755
bool ED_operator_editfont(bContext *C)
#define C
Definition RandGen.cpp:29
uiButtonSectionsAlign
wmOperatorCallContext
Definition WM_types.hh:236
BPy_StructRNA * depsgraph
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
void range(std::string text, int icon1, int icon2)
Definition area.cc:986
void item_bool(std::string text, bool inverted, int icon1, int icon2=0)
Definition area.cc:995
WorkspaceStatus(bContext *C)
Definition area.cc:933
void item(std::string text, int icon1, int icon2=0)
Definition area.cc:979
void opmodal(std::string text, const wmOperatorType *ot, int propvalue, bool inverted=false)
Definition area.cc:1005
#define str(s)
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
static ulong state[N]
Wrapper for bScreen.
int xy[2]
Definition wm_draw.cc:174
wmOperatorType * ot
Definition wm_files.cc:4225