Blender V4.3
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
9#pragma once
10
11#include "DNA_screen_types.h"
12#include "DNA_space_types.h"
13#include "DNA_view2d_types.h"
14#include "DNA_view3d_types.h"
15#include "DNA_workspace_types.h"
16
17#include "DNA_object_enums.h"
18
19#include "WM_types.hh"
20
21#include "BLI_compiler_attrs.h"
22
23struct ARegion;
24struct AZone;
25struct Depsgraph;
26struct IDProperty;
27struct Main;
28struct MenuType;
29struct Scene;
30struct SpaceLink;
31struct WorkSpace;
33struct bContext;
34struct bScreen;
35struct rcti;
36struct uiBlock;
37struct uiLayout;
38struct wmKeyConfig;
41struct wmNotifier;
42struct wmOperatorType;
46struct wmWindow;
47struct wmWindowManager;
48
49/* regions */
53void ED_region_do_layout(bContext *C, ARegion *region);
55void ED_region_do_draw(bContext *C, ARegion *region);
56void ED_region_exit(bContext *C, ARegion *region);
61void ED_region_remove(bContext *C, ScrArea *area, ARegion *region);
62void ED_region_pixelspace(const ARegion *region);
66void ED_region_update_rect(ARegion *region);
71void ED_region_tag_redraw(ARegion *region);
72void ED_region_tag_redraw_partial(ARegion *region, const rcti *rct, bool rebuild);
81
85void ED_region_search_filter_update(const ScrArea *area, ARegion *region);
89const char *ED_area_region_search_filter_get(const ScrArea *area, const ARegion *region);
90
92void ED_region_panels_ex(const bContext *C,
93 ARegion *region,
94 wmOperatorCallContext op_context,
95 const char *contexts[]);
96void ED_region_panels(const bContext *C, ARegion *region);
103 ARegion *region,
104 ListBase *paneltypes,
105 wmOperatorCallContext op_context,
106 const char *contexts[],
107 const char *category_override);
113 ARegion *region,
114 ListBase *paneltypes,
115 const char *contexts[],
116 const char *category_override);
117
118void ED_region_panels_layout(const bContext *C, ARegion *region);
119void ED_region_panels_draw(const bContext *C, ARegion *region);
120
121void ED_region_header_init(ARegion *region);
122void ED_region_header(const bContext *C, ARegion *region);
123void ED_region_header_layout(const bContext *C, ARegion *region);
124void ED_region_header_draw(const bContext *C, ARegion *region);
125/* Forward declare enum. */
126enum class uiButtonSectionsAlign : int8_t;
129 ARegion *region,
133 const ARegion *region,
135
136void ED_region_cursor_set(wmWindow *win, ScrArea *area, ARegion *region);
145 bContext *C, ScrArea *area, ARegion *region, bool is_hidden, bool do_init);
147/* `screen_ops.cc` */
148
153
154void ED_region_clear(const bContext *C, const ARegion *region, int /*ThemeColorID*/ colorid);
155
156void ED_region_info_draw(ARegion *region,
157 const char *text,
158 const float fill_color[4],
159 bool full_redraw);
161 const char *text_array[],
162 const float fill_color[4],
163 bool full_redraw);
165void ED_region_grid_draw(ARegion *region, float zoomx, float zoomy, float x0, float y0);
166float ED_region_blend_alpha(ARegion *region);
167const rcti *ED_region_visible_rect(ARegion *region);
171bool ED_region_is_overlap(int spacetype, int regiontype);
172
173int ED_region_snap_size_test(const ARegion *region);
174bool ED_region_snap_size_apply(ARegion *region, int snap_flag);
175
176/* message_bus callbacks */
178 wmMsgSubscribeKey *msg_key,
179 wmMsgSubscribeValue *msg_val);
181 wmMsgSubscribeKey *msg_key,
182 wmMsgSubscribeValue *msg_val);
183
189
190/* message bus */
191
196
197/* spaces */
198
203void ED_spacetypes_keymap(wmKeyConfig *keyconf);
207int ED_area_header_switchbutton(const bContext *C, uiBlock *block, int yco);
208
209/* areas */
213void ED_area_init(wmWindowManager *wm, wmWindow *win, ScrArea *area);
214void ED_area_exit(bContext *C, ScrArea *area);
216int ED_area_icon(const ScrArea *area);
217int ED_screen_area_active(const bContext *C);
222void ED_area_tag_redraw(ScrArea *area);
224void ED_area_tag_redraw_regiontype(ScrArea *area, int regiontype);
225void ED_area_tag_refresh(ScrArea *area);
230void ED_area_tag_region_size_update(ScrArea *area, ARegion *changed_region);
234void ED_area_do_refresh(bContext *C, ScrArea *area);
235AZone *ED_area_azones_update(ScrArea *area, const int mouse_xy[2]);
240void ED_area_status_text(ScrArea *area, const char *str);
244void ED_area_newspace(bContext *C, ScrArea *area, int type, bool skip_region_exit);
245void ED_area_prevspace(bContext *C, ScrArea *area);
246void ED_area_swapspace(bContext *C, ScrArea *sa1, ScrArea *sa2);
252int ED_area_global_size_y(const ScrArea *area);
253int ED_area_global_min_size_y(const ScrArea *area);
254int ED_area_global_max_size_y(const ScrArea *area);
255bool ED_area_is_global(const ScrArea *area);
267
272ScrArea *ED_area_find_under_cursor(const bContext *C, int spacetype, const int event_xy[2]);
273
274ScrArea *ED_screen_areas_iter_first(const wmWindow *win, const bScreen *screen);
275ScrArea *ED_screen_areas_iter_next(const bScreen *screen, const ScrArea *area);
281#define ED_screen_areas_iter(win, screen, area_name) \
282 for (ScrArea *area_name = ED_screen_areas_iter_first(win, screen); area_name != NULL; \
283 area_name = ED_screen_areas_iter_next(screen, area_name))
284#define ED_screen_verts_iter(win, screen, vert_name) \
285 for (ScrVert *vert_name = (win)->global_areas.vertbase.first ? \
286 (ScrVert *)(win)->global_areas.vertbase.first : \
287 (ScrVert *)(screen)->vertbase.first; \
288 vert_name != NULL; \
289 vert_name = (vert_name == (win)->global_areas.vertbase.last) ? \
290 (ScrVert *)(screen)->vertbase.first : \
291 vert_name->next)
292
293/* screens */
294
298void ED_screens_init(bContext *C, Main *bmain, wmWindowManager *wm);
303
310void ED_screen_do_listen(bContext *C, const wmNotifier *note);
319bool ED_screen_change(bContext *C, bScreen *screen);
320void ED_screen_scene_change(bContext *C, wmWindow *win, Scene *scene, bool refresh_toolsystem);
325void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2]);
326void ED_screen_exit(bContext *C, wmWindow *window, bScreen *screen);
331void ED_screen_animation_timer(bContext *C, int redraws, int sync, int enable);
332void ED_screen_animation_timer_update(bScreen *screen, int redraws);
334ScrArea *ED_screen_full_newspace(bContext *C, ScrArea *area, int type);
370 const char *title,
371 const rcti *rect_unscaled,
372 eSpace_Type space_type,
373 int display_type,
374 bool dialog) ATTR_NONNULL(1, 2, 3);
375void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *arg);
376void ED_screens_footer_tools_menu_create(bContext *C, uiLayout *layout, void *arg);
377void ED_screens_region_flip_menu_create(bContext *C, uiLayout *layout, void *arg);
381bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene);
382Scene *ED_screen_scene_find(const bScreen *screen, const wmWindowManager *wm);
388 const wmWindowManager *wm,
389 wmWindow **r_window);
391 const SpaceLink *sl,
392 bool only_visible);
393wmWindow *ED_screen_window_find(const bScreen *screen, const wmWindowManager *wm);
394
395/* workspaces */
396
397WorkSpace *ED_workspace_add(Main *bmain, const char *name) ATTR_NONNULL();
407bool ED_workspace_change(WorkSpace *workspace_new, bContext *C, wmWindowManager *wm, wmWindow *win)
408 ATTR_NONNULL();
413WorkSpace *ED_workspace_duplicate(WorkSpace *workspace_old, Main *bmain, wmWindow *win);
417bool ED_workspace_delete(WorkSpace *workspace, Main *bmain, bContext *C, wmWindowManager *wm)
418 ATTR_NONNULL();
431 Main *bmain,
432 WorkSpace *workspace,
433 WorkSpaceLayout *layout_new,
434 const WorkSpaceLayout *layout_fallback_base,
435 wmWindow *win) ATTR_NONNULL();
440 WorkSpace *workspace,
441 wmWindow *win,
442 const char *name) ATTR_NONNULL();
444 WorkSpace *workspace,
445 const WorkSpaceLayout *layout_old,
446 wmWindow *win) ATTR_NONNULL();
451bool ED_workspace_layout_delete(WorkSpace *workspace, WorkSpaceLayout *layout_old, bContext *C)
452 ATTR_NONNULL();
453bool ED_workspace_layout_cycle(WorkSpace *workspace, short direction, bContext *C) ATTR_NONNULL();
454
455void ED_workspace_status_text(bContext *C, const char *str);
456
458 WorkSpace *workspace_;
459 wmWindowManager *wm_;
460
461 public:
463
470 void item(std::string text, int icon1, int icon2 = 0);
471
477 void item_bool(std::string text, bool inverted, int icon1, int icon2 = 0);
478
484 void range(std::string text, int icon1, int icon2);
485
491 void opmodal(std::string text, const wmOperatorType *ot, int propvalue, bool inverted = false);
492};
493
494void ED_workspace_do_listen(bContext *C, const wmNotifier *note);
495
496/* anim */
500void ED_update_for_newframe(Main *bmain, Depsgraph *depsgraph);
501
505int ED_screen_animation_play(bContext *C, int sync, int mode);
511
512/* screen keymaps */
513/* called in `spacetypes.cc`. */
515/* called in `spacetypes.cc`. */
516void ED_keymap_screen(wmKeyConfig *keyconf);
521
522/* operators; context poll callbacks */
523
532
542
546
579
622
623/* `screen_user_menu.cc` */
624
627
635 const wmOperatorType *ot,
636 IDProperty *prop,
637 const char *op_prop_enum,
638 wmOperatorCallContext opcontext);
641 const char *context_data_path,
642 const char *prop_id,
643 int prop_index);
644
646 const char *ui_name,
647 const wmOperatorType *ot,
648 const IDProperty *prop,
649 const char *op_prop_enum,
650 wmOperatorCallContext opcontext);
651void ED_screen_user_menu_item_add_menu(ListBase *lb, const char *ui_name, const MenuType *mt);
653 const char *ui_name,
654 const char *context_data_path,
655 const char *prop_id,
656 int prop_index);
657
660
661/* Cache display helpers */
662
664void ED_region_cache_draw_curfra_label(int framenr, float x, float y);
666 ARegion *region, int num_segments, const int *points, int sfra, int efra);
667
668/* `area_utils.cc` */
669
678int ED_region_generic_tools_region_snap_size(const ARegion *region, int size, int axis);
679
680/* `area_query.cc` */
681
682bool ED_region_overlap_isect_x(const ARegion *region, int event_x);
683bool ED_region_overlap_isect_y(const ARegion *region, int event_y);
684bool ED_region_overlap_isect_xy(const ARegion *region, const int event_xy[2]);
685bool ED_region_overlap_isect_any_xy(const ScrArea *area, const int event_xy[2]);
686bool ED_region_overlap_isect_x_with_margin(const ARegion *region, int event_x, int margin);
687bool ED_region_overlap_isect_y_with_margin(const ARegion *region, int event_y, int margin);
689 const int event_xy[2],
690 int margin);
691
692bool ED_region_panel_category_gutter_calc_rect(const ARegion *region, rcti *r_region_gutter);
693bool ED_region_panel_category_gutter_isect_xy(const ARegion *region, const int event_xy[2]);
694
699bool ED_region_contains_xy(const ARegion *region, const int event_xy[2]);
707ARegion *ED_area_find_region_xy_visual(const ScrArea *area, int regiontype, const int event_xy[2]);
708
709/* `interface_region_hud.cc` */
710
711ARegionType *ED_area_type_hud(int space_type);
719ARegion *ED_area_type_hud_redo_region_find(const ScrArea *area, const ARegion *hud_region);
720
724enum {
725 ED_KEYMAP_UI = (1 << 1),
726 ED_KEYMAP_GIZMO = (1 << 2),
727 ED_KEYMAP_TOOL = (1 << 3),
733 ED_KEYMAP_GPENCIL = (1 << 10),
734 ED_KEYMAP_NAVBAR = (1 << 11),
736};
737
#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:3838
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:3742
bool ED_operator_region_outliner_active(bContext *C)
void ED_area_do_mgs_subscribe_for_tool_header(const wmRegionMessageSubscribeParams *params)
Definition area.cc:414
void ED_area_tag_redraw(ScrArea *area)
Definition area.cc:708
bool ED_operator_editarmature(bContext *C)
bool ED_region_overlap_isect_y(const ARegion *region, int event_y)
Definition area_query.cc:32
int ED_area_icon(const ScrArea *area)
int ED_region_snap_size_test(const ARegion *region)
Definition area.cc:4104
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:3419
void ED_region_tag_refresh_ui(ARegion *region)
Definition area.cc:662
int ED_screen_area_active(const bContext *C)
void ED_area_newspace(bContext *C, ScrArea *area, int type, bool skip_region_exit)
Definition area.cc:2592
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:429
bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene)
void ED_region_update_rect(ARegion *region)
Definition area.cc:2201
bool ED_operator_uvmap(bContext *C)
ScrArea * ED_screen_areas_iter_first(const wmWindow *win, const bScreen *screen)
Definition area.cc:3729
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:21
bool ED_operator_graphedit_active(bContext *C)
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:2216
bool ED_operator_screen_mainwinactive(bContext *C)
const char * ED_area_region_search_filter_get(const ScrArea *area, const ARegion *region)
Definition area.cc:777
bool ED_region_panel_category_gutter_isect_xy(const ARegion *region, const int event_xy[2])
Definition area_query.cc:83
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:127
void ED_region_cache_draw_cached_segments(ARegion *region, int num_segments, const int *points, int sfra, int efra)
Definition area.cc:4060
Scene * ED_screen_scene_find(const bScreen *screen, const wmWindowManager *wm)
int ED_area_global_size_y(const ScrArea *area)
Definition area.cc:3677
void ED_region_search_filter_update(const ScrArea *area, ARegion *region)
Definition area.cc:790
void ED_region_toggle_hidden(bContext *C, ARegion *region)
Definition area.cc:2276
bool ED_operator_console_active(bContext *C)
float ED_region_blend_alpha(ARegion *region)
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:3682
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:49
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:3698
bool ED_operator_editable_mesh(bContext *C)
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:2206
bool ED_operator_scene(bContext *C)
void ED_area_status_text(ScrArea *area, const char *str)
Definition area.cc:803
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:94
bool ED_operator_editsurfcurve_region_view3d(bContext *C)
void ED_area_tag_redraw_no_rebuild(ScrArea *area)
Definition area.cc:717
int ED_screen_animation_play(bContext *C, int sync, int mode)
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:3687
void ED_region_panels(const bContext *C, ARegion *region)
Definition area.cc:3336
void ED_region_clear(const bContext *C, const ARegion *region, int colorid)
Definition area.cc:2807
void ED_workspace_do_listen(bContext *C, const wmNotifier *note)
void ED_region_header(const bContext *C, ARegion *region)
Definition area.cc:3646
ScrArea * ED_screen_full_newspace(bContext *C, ScrArea *area, int type)
const rcti * ED_region_visible_rect(ARegion *region)
Definition area.cc:4010
bool ED_operator_object_active(bContext *C)
bool ED_operator_editsurfcurve(bContext *C)
void ED_area_do_listen(wmSpaceTypeListenerParams *params)
Definition area.cc:159
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:3661
bool ED_area_is_global(const ScrArea *area)
Definition area.cc:3693
bool ED_operator_sequencer_active(bContext *C)
void ED_region_cache_draw_background(ARegion *region)
Definition area.cc:4021
void ED_area_swapspace(bContext *C, ScrArea *sa1, ScrArea *sa2)
Definition area.cc:2566
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:121
bool ED_operator_asset_browsing_active(bContext *C)
void ED_area_offscreen_free(wmWindowManager *wm, wmWindow *win, ScrArea *area)
Definition area.cc:2184
void ED_region_header_draw(const bContext *C, ARegion *region)
Definition area.cc:3621
bool ED_operator_objectmode_with_view3d_poll_msg(bContext *C)
void ED_region_tag_redraw_no_rebuild(ARegion *region)
Definition area.cc:653
void ED_region_cache_draw_curfra_label(int framenr, float x, float y)
Definition area.cc:4035
int ED_area_headersize()
Definition area.cc:3666
bool ED_operator_image_active(bContext *C)
ScrArea * ED_area_offscreen_create(wmWindow *win, eSpace_Type space_type)
Definition area.cc:2143
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:726
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:1998
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:3099
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:4117
bool ED_region_is_overlap(int spacetype, int regiontype)
Definition area.cc:1407
void ED_region_header_with_button_sections(const bContext *C, ARegion *region, uiButtonSectionsAlign align)
Definition area.cc:3653
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:681
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:3762
void ED_area_tag_region_size_update(ScrArea *area, ARegion *changed_region)
Definition area.cc:744
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:2254
int ED_region_generic_tools_region_snap_size(const ARegion *region, int size, int axis)
Definition area_utils.cc:41
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:476
void ED_region_tag_redraw_cursor(ARegion *region)
Definition area.cc:646
bool ED_region_overlap_isect_xy(const ARegion *region, const int event_xy[2])
Definition area_query.cc:43
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:92
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:1959
void ED_region_visibility_change_update_animated(bContext *C, ScrArea *area, ARegion *region)
void ED_area_tag_refresh(ScrArea *area)
Definition area.cc:737
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:29
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:3757
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:167
bool ED_operator_file_active(bContext *C)
blender::StringRefNull ED_area_name(const ScrArea *area)
bool ED_operator_editmesh_view3d(bContext *C)
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:3271
void ED_region_panels_init(wmWindowManager *wm, ARegion *region)
Definition area.cc:3343
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:61
void ED_workspace_status_text(bContext *C, const char *str)
Definition area.cc:966
void ED_update_for_newframe(Main *bmain, Depsgraph *depsgraph)
void ED_region_image_metadata_panel_draw(ImBuf *ibuf, uiLayout *layout)
Definition area.cc:3859
bool ED_operator_editsurf(bContext *C)
void ED_region_tag_redraw_editor_overlays(ARegion *region)
Definition area.cc:669
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:2766
void ED_region_header_draw_with_button_sections(const bContext *C, const ARegion *region, uiButtonSectionsAlign align)
Definition area.cc:3628
void ED_area_do_msg_notify_tag_refresh(bContext *C, wmMsgSubscribeKey *msg_key, wmMsgSubscribeValue *msg_val)
Definition area.cc:404
void ED_region_visibility_change_update_ex(bContext *C, ScrArea *area, ARegion *region, bool is_hidden, bool do_init)
Definition area.cc:2235
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:499
bool ED_operator_editmesh(bContext *C)
void ED_region_tag_redraw(ARegion *region)
Definition area.cc:634
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:4085
int ED_area_footersize()
Definition area.cc:3672
void ED_region_grid_draw(ARegion *region, float zoomx, float zoomy, float x0, float y0)
Definition area.cc:3866
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)
@ ED_KEYMAP_NAVBAR
Definition ED_screen.hh:734
@ ED_KEYMAP_ASSET_SHELF
Definition ED_screen.hh:735
@ ED_KEYMAP_UI
Definition ED_screen.hh:725
@ ED_KEYMAP_ANIMATION
Definition ED_screen.hh:729
@ ED_KEYMAP_HEADER
Definition ED_screen.hh:731
@ ED_KEYMAP_TOOL
Definition ED_screen.hh:727
@ ED_KEYMAP_GPENCIL
Definition ED_screen.hh:733
@ ED_KEYMAP_GIZMO
Definition ED_screen.hh:726
@ ED_KEYMAP_VIEW2D
Definition ED_screen.hh:728
@ ED_KEYMAP_FRAMES
Definition ED_screen.hh:730
@ ED_KEYMAP_FOOTER
Definition ED_screen.hh:732
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:2742
void ED_region_do_msg_notify_tag_redraw(bContext *C, wmMsgSubscribeKey *msg_key, wmMsgSubscribeValue *msg_val)
Definition area.cc:381
bool ED_operator_region_gizmo_active(bContext *C)
void ED_area_init(wmWindowManager *wm, wmWindow *win, ScrArea *area)
Definition area.cc:2036
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:3326
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:3277
void ED_region_header_layout(const bContext *C, ARegion *region)
Definition area.cc:3522
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:739
@ SPACE_CONTEXT_CYCLE_NEXT
Definition ED_screen.hh:741
@ SPACE_CONTEXT_CYCLE_PREV
Definition ED_screen.hh:740
bool ED_operator_editfont(bContext *C)
uiButtonSectionsAlign
wmOperatorCallContext
Definition WM_types.hh:216
void item_bool(std::string text, bool inverted, int icon1, int icon2=0)
Definition area.cc:924
WorkspaceStatus(bContext *C)
Definition area.cc:864
void item(std::string text, int icon1, int icon2=0)
Definition area.cc:908
void opmodal(std::string text, const wmOperatorType *ot, int propvalue, bool inverted=false)
Definition area.cc:934
local_group_size(16, 16) .push_constant(Type b
const Depsgraph * depsgraph
#define str(s)
IndexRange range
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
static ulong state[N]
signed char int8_t
Definition stdint.h:75
Wrapper for bScreen.
int xy[2]
Definition wm_draw.cc:170
wmOperatorType * ot
Definition wm_files.cc:4125