diff options
author | Dilith Jayakody <dilithjay@gmail.com> | 2022-04-03 05:38:54 +0300 |
---|---|---|
committer | Dilith Jayakody <dilithjay@gmail.com> | 2022-04-03 05:38:54 +0300 |
commit | bb44667a2e8f9c91548a574443e750583918e996 (patch) | |
tree | 12347d0a95971a9b7cd7d11786ccc2f948b214c6 /source/blender/editors/interface/interface_regions.cc | |
parent | 2579367c93296eb2ab1da0b51dc107287dc09fd3 (diff) | |
parent | 79ff65d07bac0ecf0170542f86dc03a0228b53d5 (diff) |
Merge branch 'master' into soc-2021-curvessoc-2021-curves
Diffstat (limited to 'source/blender/editors/interface/interface_regions.cc')
-rw-r--r-- | source/blender/editors/interface/interface_regions.cc | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface_regions.cc b/source/blender/editors/interface/interface_regions.cc new file mode 100644 index 00000000000..1a2c1f7919c --- /dev/null +++ b/source/blender/editors/interface/interface_regions.cc @@ -0,0 +1,50 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later + * Copyright 2008 Blender Foundation. All rights reserved. */ + +/** \file + * \ingroup edinterface + * + * General Interface Region Code + * + * \note Most logic is now in 'interface_region_*.c' + */ + +#include "BLI_listbase.h" +#include "BLI_utildefines.h" +#include "MEM_guardedalloc.h" + +#include "BKE_context.h" +#include "BKE_screen.h" + +#include "WM_api.h" +#include "wm_draw.h" + +#include "ED_screen.h" + +#include "interface_regions_intern.h" + +ARegion *ui_region_temp_add(bScreen *screen) +{ + ARegion *region = MEM_cnew<ARegion>(__func__); + BLI_addtail(&screen->regionbase, region); + + region->regiontype = RGN_TYPE_TEMPORARY; + region->alignment = RGN_ALIGN_FLOAT; + + return region; +} + +void ui_region_temp_remove(bContext *C, bScreen *screen, ARegion *region) +{ + wmWindow *win = CTX_wm_window(C); + + BLI_assert(region->regiontype == RGN_TYPE_TEMPORARY); + BLI_assert(BLI_findindex(&screen->regionbase, region) != -1); + if (win) { + wm_draw_region_clear(win, region); + } + + ED_region_exit(C, region); + BKE_area_region_free(nullptr, region); /* nullptr: no spacetype */ + BLI_freelinkN(&screen->regionbase, region); +} |