import bpy
AREA_TYPES = [
"VIEW_3D",
"IMAGE_EDITOR",
"NODE_EDITOR",
"SEQUENCE_EDITOR",
"CLIP_EDITOR",
"DOPESHEET_EDITOR",
"GRAPH_EDITOR",
"NLA_EDITOR",
"TEXT_EDITOR",
"CONSOLE",
"INFO",
"TOPBAR",
"STATUSBAR",
"OUTLINER",
"PROPERTIES",
"FILE_BROWSER",
"SPREADSHEET",
"PREFERENCES",
]
"""List of all area types"""
[docs]
def get_areas(area_type):
"""Yield all areas of the given type.
:param area_type: Area type to get (one of :attr:`~blendersynth.utils.layout.AREA_TYPES`)
"""
assert area_type in AREA_TYPES, f"Invalid area type: {area_type}"
for area in bpy.context.screen.areas:
if area.type == area_type:
yield area
[docs]
def get_area(area_type) -> bpy.types.Area:
"""Return the first found area of the given type.
:param area_type: Area type to get (one of :attr:`~blendersynth.utils.layout.AREA_TYPES`)
"""
for area in get_areas(area_type):
return area
[docs]
def change_area_to(area_type_from: str, area_type_to: str):
"""Change the first area found.
:param area_type_from: Area type to change from (one of :attr:`~blendersynth.utils.layout.AREA_TYPES`)
:param area_type_to: Area type to change to (one of :attr:`~blendersynth.utils.layout.AREA_TYPES`)
"""
get_area(area_type_from).type = area_type_to