Blender V5.0
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
86 ARegion *region,
87 rcti *mask = nullptr);
88
92void ED_region_search_filter_update(const ScrArea *area, ARegion *region);
96const char *ED_area_region_search_filter_get(const ScrArea *area, const ARegion *region);
100int ED_area_max_regionsize(const ScrArea *area, const ARegion *scale_region, const AZEdge edge);
101
103void ED_region_panels_ex(const bContext *C,
104 ARegion *region,
106 const char *contexts[]);
107void ED_region_panels(const bContext *C, ARegion *region);
114 ARegion *region,
115 ListBase *paneltypes,
117 const char *contexts[],
118 const char *category_override);
124 ARegion *region,
125 ListBase *paneltypes,
126 const char *contexts[],
127 const char *category_override);
128
129void ED_region_panels_layout(const bContext *C, ARegion *region);
130void ED_region_panels_draw(const bContext *C, ARegion *region);
131
132void ED_region_header_init(ARegion *region);
133void ED_region_header(const bContext *C, ARegion *region);
134void ED_region_header_layout(const bContext *C, ARegion *region);
135void ED_region_header_draw(const bContext *C, ARegion *region);
136/* Forward declare enum. */
137enum class uiButtonSectionsAlign : int8_t;
140 ARegion *region,
144 const ARegion *region,
146
147void ED_region_cursor_set(wmWindow *win, ScrArea *area, ARegion *region);
156 bContext *C, ScrArea *area, ARegion *region, bool is_hidden, bool do_init);
158/* `screen_ops.cc` */
159
164
165void ED_region_clear(const bContext *C, const ARegion *region, int /*ThemeColorID*/ colorid);
166
167void ED_region_info_draw(ARegion *region,
168 const char *text,
169 const float fill_color[4],
170 bool full_redraw);
172 const char *text_array[],
173 const float fill_color[4],
174 bool full_redraw);
176void ED_region_grid_draw(ARegion *region, float zoomx, float zoomy, float x0, float y0);
177float ED_region_blend_alpha(ARegion *region);
178const rcti *ED_region_visible_rect(ARegion *region);
182bool ED_region_is_overlap(int spacetype, int regiontype);
183
184int ED_region_snap_size_test(const ARegion *region);
185bool ED_region_snap_size_apply(ARegion *region, int snap_flag);
186
187/* message_bus callbacks */
189 wmMsgSubscribeKey *msg_key,
190 wmMsgSubscribeValue *msg_val);
192 wmMsgSubscribeKey *msg_key,
193 wmMsgSubscribeValue *msg_val);
194
200
201/* message bus */
202
207
208/* spaces */
209
214void ED_spacetypes_keymap(wmKeyConfig *keyconf);
218int ED_area_header_switchbutton(const bContext *C, uiBlock *block, int yco);
219
220/* areas */
228void ED_area_init(bContext *C, const wmWindow *win, ScrArea *area);
229void ED_area_exit(bContext *C, ScrArea *area);
231int ED_area_icon(const ScrArea *area);
237void ED_area_tag_redraw(ScrArea *area);
239void ED_area_tag_redraw_regiontype(ScrArea *area, int regiontype);
240void ED_area_tag_refresh(ScrArea *area);
245void ED_area_tag_region_size_update(ScrArea *area, ARegion *changed_region);
250AZone *ED_area_azones_update(ScrArea *area, const int mouse_xy[2]);
255void ED_area_status_text(ScrArea *area, const char *str);
259void ED_area_newspace(bContext *C, ScrArea *area, int type, bool skip_region_exit);
260void ED_area_prevspace(bContext *C, ScrArea *area);
261void ED_area_swapspace(bContext *C, ScrArea *sa1, ScrArea *sa2);
267int ED_area_global_size_y(const ScrArea *area);
268int ED_area_global_min_size_y(const ScrArea *area);
269int ED_area_global_max_size_y(const ScrArea *area);
270bool ED_area_is_global(const ScrArea *area);
282
287ScrArea *ED_area_find_under_cursor(const bContext *C, int spacetype, const int event_xy[2]);
288
289ScrArea *ED_screen_areas_iter_first(const wmWindow *win, const bScreen *screen);
290ScrArea *ED_screen_areas_iter_next(const bScreen *screen, const ScrArea *area);
296#define ED_screen_areas_iter(win, screen, area_name) \
297 for (ScrArea *area_name = ED_screen_areas_iter_first(win, screen); area_name != NULL; \
298 area_name = ED_screen_areas_iter_next(screen, area_name))
299#define ED_screen_verts_iter(win, screen, vert_name) \
300 for (ScrVert *vert_name = (win)->global_areas.vertbase.first ? \
301 (ScrVert *)(win)->global_areas.vertbase.first : \
302 (ScrVert *)(screen)->vertbase.first; \
303 vert_name != NULL; \
304 vert_name = (vert_name == (win)->global_areas.vertbase.last) ? \
305 (ScrVert *)(screen)->vertbase.first : \
306 vert_name->next)
307
311void ED_areas_do_frame_follow(bContext *C, bool center_view);
312
313/* screens */
314
318void ED_screens_init(bContext *C, Main *bmain, wmWindowManager *wm);
323
330void ED_screen_do_listen(bContext *C, const wmNotifier *note);
339bool ED_screen_change(bContext *C, bScreen *screen);
340void ED_screen_scene_change(bContext *C, wmWindow *win, Scene *scene, bool refresh_toolsystem);
345void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2]);
346void ED_screen_exit(bContext *C, wmWindow *window, bScreen *screen);
352 bContext *C, Scene *scene, ViewLayer *view_layer, int redraws, int sync, int enable);
353void ED_screen_animation_timer_update(bScreen *screen, int redraws);
391 const char *title,
392 eSpace_Type space_type,
393 int display_type,
394 bool dialog) ATTR_NONNULL(1);
395void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *arg);
396void ED_screens_footer_tools_menu_create(bContext *C, uiLayout *layout, void *arg);
397void ED_screens_region_flip_menu_create(bContext *C, uiLayout *layout, void *arg);
401bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene);
402Scene *ED_screen_scene_find(const bScreen *screen, const wmWindowManager *wm);
408 const wmWindowManager *wm,
409 wmWindow **r_window);
411 const SpaceLink *sl,
412 bool only_visible);
413wmWindow *ED_screen_window_find(const bScreen *screen, const wmWindowManager *wm);
414
415/* workspaces */
416
417WorkSpace *ED_workspace_add(Main *bmain, const char *name) ATTR_NONNULL();
427bool ED_workspace_change(WorkSpace *workspace_new, bContext *C, wmWindowManager *wm, wmWindow *win)
428 ATTR_NONNULL();
433WorkSpace *ED_workspace_duplicate(WorkSpace *workspace_old, Main *bmain, wmWindow *win);
437bool ED_workspace_delete(WorkSpace *workspace, Main *bmain, bContext *C, wmWindowManager *wm)
438 ATTR_NONNULL();
451 Main *bmain,
452 WorkSpace *workspace,
453 WorkSpaceLayout *layout_new,
454 const WorkSpaceLayout *layout_fallback_base,
455 wmWindow *win) ATTR_NONNULL();
460 WorkSpace *workspace,
461 wmWindow *win,
462 const char *name) ATTR_NONNULL();
464 WorkSpace *workspace,
465 const WorkSpaceLayout *layout_old,
466 wmWindow *win) ATTR_NONNULL();
471bool ED_workspace_layout_delete(WorkSpace *workspace, WorkSpaceLayout *layout_old, bContext *C)
472 ATTR_NONNULL();
473bool ED_workspace_layout_cycle(WorkSpace *workspace, short direction, bContext *C) ATTR_NONNULL();
474
475void ED_workspace_status_text(bContext *C, const char *str);
476
478 WorkSpace *workspace_;
479 wmWindowManager *wm_;
480
481 public:
483
490 void item(std::string text, int icon1, int icon2 = 0);
491
495 void separator(float factor = 1.0f);
496
502 void item_bool(std::string text, bool inverted, int icon1, int icon2 = 0);
503
509 void range(std::string text, int icon1, int icon2);
510
516 void opmodal(std::string text, const wmOperatorType *ot, int propvalue, bool inverted = false);
517};
518
519void ED_workspace_do_listen(bContext *C, const wmNotifier *note);
520
521/* anim */
525void ED_update_for_newframe(Main *bmain, Depsgraph *depsgraph);
526
537
538/* screen keymaps */
539/* called in `spacetypes.cc`. */
541/* called in `spacetypes.cc`. */
542void ED_keymap_screen(wmKeyConfig *keyconf);
547
548/* operators; context poll callbacks */
549
559
564
572
576
609
654
655/* `screen_user_menu.cc` */
656
659
667 const wmOperatorType *ot,
668 IDProperty *prop,
669 const char *op_prop_enum,
673 const char *context_data_path,
674 const char *prop_id,
675 int prop_index);
676
678 const char *ui_name,
679 const wmOperatorType *ot,
680 const IDProperty *prop,
681 const char *op_prop_enum,
683void ED_screen_user_menu_item_add_menu(ListBase *lb, const char *ui_name, const MenuType *mt);
685 const char *ui_name,
686 const char *context_data_path,
687 const char *prop_id,
688 int prop_index);
689
692
693/* Cache display helpers */
694
696void ED_region_cache_draw_curfra_label(int framenr, float x, float y);
698 ARegion *region, int num_segments, const int *points, int sfra, int efra);
699
700/* `area_utils.cc` */
701
710int ED_region_generic_tools_region_snap_size(const ARegion *region, int size, int axis);
711int ED_region_generic_panel_region_snap_size(const ARegion *region, int size, int axis);
712
713/* `area_query.cc` */
714
715bool ED_region_overlap_isect_x(const ARegion *region, int event_x);
716bool ED_region_overlap_isect_y(const ARegion *region, int event_y);
717bool ED_region_overlap_isect_xy(const ARegion *region, const int event_xy[2]);
718bool ED_region_overlap_isect_any_xy(const ScrArea *area, const int event_xy[2]);
719bool ED_region_overlap_isect_x_with_margin(const ARegion *region, int event_x, int margin);
720bool ED_region_overlap_isect_y_with_margin(const ARegion *region, int event_y, int margin);
722 const int event_xy[2],
723 int margin);
724
725bool ED_region_panel_category_gutter_calc_rect(const ARegion *region, rcti *r_region_gutter);
726bool ED_region_panel_category_gutter_isect_xy(const ARegion *region, const int event_xy[2]);
727
732bool ED_region_contains_xy(const ARegion *region, const int event_xy[2]);
740ARegion *ED_area_find_region_xy_visual(const ScrArea *area, int regiontype, const int event_xy[2]);
741
742/* `interface_region_hud.cc` */
743
744ARegionType *ED_area_type_hud(int space_type);
752ARegion *ED_area_type_hud_redo_region_find(const ScrArea *area, const ARegion *hud_region);
753
757enum {
758 ED_KEYMAP_UI = (1 << 1),
759 ED_KEYMAP_GIZMO = (1 << 2),
760 ED_KEYMAP_TOOL = (1 << 3),
766 ED_KEYMAP_GPENCIL = (1 << 10),
767 ED_KEYMAP_NAVBAR = (1 << 11),
769};
770
#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:4128
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:4032
bool ED_operator_region_outliner_active(bContext *C)
void ED_area_do_mgs_subscribe_for_tool_header(const wmRegionMessageSubscribeParams *params)
Definition area.cc:394
void ED_area_tag_redraw(ScrArea *area)
Definition area.cc:693
bool ED_operator_editarmature(bContext *C)
bool ED_region_overlap_isect_y(const ARegion *region, int event_y)
Definition area_query.cc:36
int ED_area_icon(const ScrArea *area)
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, blender::wm::OpCallContext opcontext)
int ED_region_snap_size_test(const ARegion *region)
Definition area.cc:4406
ARegionType * ED_area_type_hud(int space_type)
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)
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:3723
void ED_region_tag_refresh_ui(ARegion *region)
Definition area.cc:647
int ED_screen_area_active(const bContext *C)
void ED_area_init(bContext *C, const wmWindow *win, ScrArea *area)
Definition area.cc:2140
void ED_area_newspace(bContext *C, ScrArea *area, int type, bool skip_region_exit)
Definition area.cc:2699
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:409
bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene)
void ED_region_update_rect(ARegion *region)
Definition area.cc:2296
bool ED_operator_uvmap(bContext *C)
ScrArea * ED_screen_areas_iter_first(const wmWindow *win, const bScreen *screen)
Definition area.cc:4019
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:22
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:2311
bool ED_operator_screen_mainwinactive(bContext *C)
const char * ED_area_region_search_filter_get(const ScrArea *area, const ARegion *region)
Definition area.cc:825
bool ED_region_panel_category_gutter_isect_xy(const ARegion *region, const int event_xy[2])
Definition area_query.cc:93
bool ED_region_overlap_isect_xy_with_margin(const ARegion *region, const int event_xy[2], int margin)
void ED_region_do_listen(wmRegionListenerParams *params)
Definition area.cc:93
int ED_area_max_regionsize(const ScrArea *area, const ARegion *scale_region, const AZEdge edge)
Definition area.cc:762
void ED_region_cache_draw_cached_segments(ARegion *region, int num_segments, const int *points, int sfra, int efra)
Definition area.cc:4362
Scene * ED_screen_scene_find(const bScreen *screen, const wmWindowManager *wm)
int ED_area_global_size_y(const ScrArea *area)
Definition area.cc:3967
void ED_region_search_filter_update(const ScrArea *area, ARegion *region)
Definition area.cc:838
void ED_region_toggle_hidden(bContext *C, ARegion *region)
Definition area.cc:2373
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:3972
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:56
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:3988
bool ED_operator_sequencer_scene_editable(bContext *C)
bool ED_operator_editable_mesh(bContext *C)
void ED_area_and_region_types_init(ScrArea *area)
Definition area.cc:2123
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:2301
bUserMenuItem_Op * ED_screen_user_menu_item_find_operator(ListBase *lb, const wmOperatorType *ot, IDProperty *prop, const char *op_prop_enum, blender::wm::OpCallContext opcontext)
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:851
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)
bool ED_operator_editsurfcurve_region_view3d(bContext *C)
void ED_area_tag_redraw_no_rebuild(ScrArea *area)
Definition area.cc:702
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:3977
void ED_region_panels(const bContext *C, ARegion *region)
Definition area.cc:3609
void ED_region_clear(const bContext *C, const ARegion *region, int colorid)
Definition area.cc:2933
void ED_workspace_do_listen(bContext *C, const wmNotifier *note)
void ED_region_header(const bContext *C, ARegion *region)
Definition area.cc:3935
ScrArea * ED_screen_full_newspace(bContext *C, ScrArea *area, int type)
const rcti * ED_region_visible_rect(ARegion *region)
Definition area.cc:4301
bool ED_operator_object_active(bContext *C)
bool ED_operator_editsurfcurve(bContext *C)
void ED_area_do_listen(wmSpaceTypeListenerParams *params)
Definition area.cc:125
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)
bool ED_operator_editcurve_3d(bContext *C)
bool ED_operator_objectmode(bContext *C)
void ED_region_header_init(ARegion *region)
Definition area.cc:3950
bool ED_area_is_global(const ScrArea *area)
Definition area.cc:3983
bool ED_operator_sequencer_active(bContext *C)
void ED_region_cache_draw_background(ARegion *region)
Definition area.cc:4312
void ED_area_swapspace(bContext *C, ScrArea *sa1, ScrArea *sa2)
Definition area.cc:2663
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:87
bool ED_operator_asset_browsing_active(bContext *C)
void ED_area_offscreen_free(wmWindowManager *wm, wmWindow *win, ScrArea *area)
Definition area.cc:2279
void ED_region_header_draw(const bContext *C, ARegion *region)
Definition area.cc:3902
bool ED_operator_objectmode_with_view3d_poll_msg(bContext *C)
void ED_region_tag_redraw_no_rebuild(ARegion *region)
Definition area.cc:638
void ED_region_cache_draw_curfra_label(int framenr, float x, float y)
Definition area.cc:4326
int ED_area_headersize()
Definition area.cc:3956
bool ED_operator_image_active(bContext *C)
ScrArea * ED_area_offscreen_create(wmWindow *win, eSpace_Type space_type)
Definition area.cc:2238
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:711
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:2085
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_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:4419
bool ED_region_is_overlap(int spacetype, int regiontype)
Definition area.cc:1478
void ED_region_header_with_button_sections(const bContext *C, ARegion *region, uiButtonSectionsAlign align)
Definition area.cc:3942
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:666
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:4052
void ED_region_panels_ex(const bContext *C, ARegion *region, blender::wm::OpCallContext op_context, const char *contexts[])
Definition area.cc:3598
void ED_area_tag_region_size_update(ScrArea *area, ARegion *changed_region)
Definition area.cc:729
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:2351
int ED_region_generic_tools_region_snap_size(const ARegion *region, int size, int axis)
Definition area_utils.cc:40
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:456
void ED_region_tag_redraw_cursor(ARegion *region)
Definition area.cc:631
bool ED_region_overlap_isect_xy(const ARegion *region, const int event_xy[2])
Definition area_query.cc:50
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)
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()
bool ED_operator_active_screen_and_scene(bContext *C)
void ED_area_update_region_sizes(wmWindowManager *wm, wmWindow *win, ScrArea *area)
Definition area.cc:2046
void ED_region_visibility_change_update_animated(bContext *C, ScrArea *area, ARegion *region)
void ED_area_tag_refresh(ScrArea *area)
Definition area.cc:722
void ED_region_generic_tools_region_message_subscribe(const wmRegionMessageSubscribeParams *params)
Definition area_utils.cc:28
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_generic_panel_region_snap_size(const ARegion *region, int size, int axis)
Definition area_utils.cc:71
int ED_region_global_size_y()
Definition area.cc:4047
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:133
bool ED_operator_file_active(bContext *C)
blender::StringRefNull ED_area_name(const ScrArea *area)
bool ED_operator_editmesh_view3d(bContext *C)
ScrArea * ED_screen_temp_space_open(bContext *C, const char *title, eSpace_Type space_type, int display_type, bool dialog) ATTR_NONNULL(1)
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:3519
void ED_region_panels_init(wmWindowManager *wm, ARegion *region)
Definition area.cc:3616
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:71
void ED_workspace_status_text(bContext *C, const char *str)
Definition area.cc:1024
void ED_update_for_newframe(Main *bmain, Depsgraph *depsgraph)
void ED_region_image_metadata_panel_draw(ImBuf *ibuf, uiLayout *layout)
Definition area.cc:4149
bool ED_operator_editsurf(bContext *C)
void ED_region_tag_redraw_editor_overlays(ARegion *region)
Definition area.cc:654
void ED_workspace_scene_data_sync(WorkSpaceInstanceHook *hook, Scene *scene) ATTR_NONNULL()
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:2892
void ED_region_header_draw_with_button_sections(const bContext *C, const ARegion *region, uiButtonSectionsAlign align)
Definition area.cc:3917
void ED_area_do_msg_notify_tag_refresh(bContext *C, wmMsgSubscribeKey *msg_key, wmMsgSubscribeValue *msg_val)
Definition area.cc:384
void ED_region_visibility_change_update_ex(bContext *C, ScrArea *area, ARegion *region, bool is_hidden, bool do_init)
Definition area.cc:2332
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:479
bool ED_operator_editmesh(bContext *C)
void ED_region_panels_layout_ex(const bContext *C, ARegion *region, ListBase *paneltypes, blender::wm::OpCallContext op_context, const char *contexts[], const char *category_override)
Definition area.cc:3233
void ED_region_tag_redraw(ARegion *region)
Definition area.cc:618
@ ED_KEYMAP_NAVBAR
Definition ED_screen.hh:767
@ ED_KEYMAP_ASSET_SHELF
Definition ED_screen.hh:768
@ ED_KEYMAP_UI
Definition ED_screen.hh:758
@ ED_KEYMAP_ANIMATION
Definition ED_screen.hh:762
@ ED_KEYMAP_HEADER
Definition ED_screen.hh:764
@ ED_KEYMAP_TOOL
Definition ED_screen.hh:760
@ ED_KEYMAP_GPENCIL
Definition ED_screen.hh:766
@ ED_KEYMAP_GIZMO
Definition ED_screen.hh:759
@ ED_KEYMAP_VIEW2D
Definition ED_screen.hh:761
@ ED_KEYMAP_FRAMES
Definition ED_screen.hh:763
@ ED_KEYMAP_FOOTER
Definition ED_screen.hh:765
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:4387
int ED_area_footersize()
Definition area.cc:3962
void ED_region_grid_draw(ARegion *region, float zoomx, float zoomy, float x0, float y0)
Definition area.cc:4156
bool ED_operator_uvedit(bContext *C)
void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *arg)
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:2866
void ED_region_do_msg_notify_tag_redraw(bContext *C, wmMsgSubscribeKey *msg_key, wmMsgSubscribeValue *msg_val)
Definition area.cc:361
bool ED_operator_region_gizmo_active(bContext *C)
bool ED_operator_sequencer_scene(bContext *C)
bool ED_operator_objectmode_poll_msg(bContext *C)
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:3529
void ED_region_draw_overflow_indication(const ScrArea *area, ARegion *region, rcti *mask=nullptr)
Definition area.cc:3417
void ED_region_header_layout(const bContext *C, ARegion *region)
Definition area.cc:3801
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:772
@ SPACE_CONTEXT_CYCLE_NEXT
Definition ED_screen.hh:774
@ SPACE_CONTEXT_CYCLE_PREV
Definition ED_screen.hh:773
bool ED_operator_editfont(bContext *C)
#define C
Definition RandGen.cpp:29
uiButtonSectionsAlign
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:970
void separator(float factor=1.0f)
Definition area.cc:965
void item_bool(std::string text, bool inverted, int icon1, int icon2=0)
Definition area.cc:979
WorkspaceStatus(bContext *C)
Definition area.cc:912
void item(std::string text, int icon1, int icon2=0)
Definition area.cc:958
void opmodal(std::string text, const wmOperatorType *ot, int propvalue, bool inverted=false)
Definition area.cc:989
#define str(s)
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
static ulong state[N]
const char * name
Wrapper for bScreen.
int xy[2]
Definition wm_draw.cc:178
wmOperatorType * ot
Definition wm_files.cc:4237