Blender V5.0
interface_regions.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2008 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
12
13#include "BLI_listbase.h"
14
15#include "BKE_context.hh"
16#include "BKE_screen.hh"
17
18#include "wm_draw.hh"
19
20#include "ED_screen.hh"
21
23
25{
26 ARegion *region = BKE_area_region_new();
27 BLI_addtail(&screen->regionbase, region);
28
30 region->alignment = RGN_ALIGN_FLOAT;
31
32 return region;
33}
34
36{
37 wmWindow *win = CTX_wm_window(C);
38
40 BLI_assert(BLI_findindex(&screen->regionbase, region) != -1);
41 if (win) {
42 wm_draw_region_clear(win, region);
43 }
44
45 ED_region_exit(C, region);
46 BKE_area_region_free(nullptr, region); /* nullptr: no space-type. */
47 BLI_freelinkN(&screen->regionbase, region);
48
49 if (CTX_wm_region(C) == region) {
50 CTX_wm_region_set(C, nullptr);
51 }
52 if (CTX_wm_region_popup(C) == region) {
53 CTX_wm_region_popup_set(C, nullptr);
54 }
55}
ARegion * CTX_wm_region_popup(const bContext *C)
wmWindow * CTX_wm_window(const bContext *C)
void CTX_wm_region_set(bContext *C, ARegion *region)
ARegion * CTX_wm_region(const bContext *C)
void CTX_wm_region_popup_set(bContext *C, ARegion *region_popup)
ARegion * BKE_area_region_new()
Definition screen.cc:387
void BKE_area_region_free(SpaceType *st, ARegion *region)
Definition screen.cc:597
#define BLI_assert(a)
Definition BLI_assert.h:46
int BLI_findindex(const ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
Definition listbase.cc:586
void BLI_freelinkN(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
Definition listbase.cc:270
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
Definition listbase.cc:111
@ RGN_ALIGN_FLOAT
@ RGN_TYPE_TEMPORARY
void ED_region_exit(bContext *C, ARegion *region)
#define C
Definition RandGen.cpp:29
ARegion * ui_region_temp_add(bScreen *screen)
void ui_region_temp_remove(bContext *C, bScreen *screen, ARegion *region)
ListBase regionbase
void wm_draw_region_clear(wmWindow *win, ARegion *)
Definition wm_draw.cc:1671