[Bf-blender-cvs] [d6df32a6f84] asset-shelf: Add basic (empty) asset shelf region
Julian Eisel
noreply at git.blender.org
Tue Jan 17 16:25:29 CET 2023
Commit: d6df32a6f841836c9b83f116bd95440346cc74fe
Author: Julian Eisel
Date: Wed Dec 7 20:00:27 2022 +0100
Branches: asset-shelf
https://developer.blender.org/rBd6df32a6f841836c9b83f116bd95440346cc74fe
Add basic (empty) asset shelf region
===================================================================
M source/blender/blenloader/intern/versioning_300.cc
M source/blender/editors/screen/area.c
M source/blender/editors/screen/screen_edit.c
M source/blender/editors/space_view3d/space_view3d.cc
M source/blender/makesdna/DNA_screen_types.h
M source/blender/makesrna/intern/rna_screen.c
===================================================================
diff --git a/source/blender/blenloader/intern/versioning_300.cc b/source/blender/blenloader/intern/versioning_300.cc
index 85078a9902d..2acc95b7339 100644
--- a/source/blender/blenloader/intern/versioning_300.cc
+++ b/source/blender/blenloader/intern/versioning_300.cc
@@ -3732,5 +3732,26 @@ void blo_do_versions_300(FileData *fd, Library * /*lib*/, Main *bmain)
image->seam_margin = 8;
}
}
+
+ /* Add a properties sidebar to the spreadsheet editor. */
+ LISTBASE_FOREACH (bScreen *, screen, &bmain->screens) {
+ LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) {
+ LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) {
+ if (sl->spacetype == SPACE_VIEW3D) {
+ ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
+ &sl->regionbase;
+ ARegion *new_asset_shelf = do_versions_add_region_if_not_found(
+ regionbase,
+ RGN_TYPE_ASSET_SHELF,
+ "asset shelf for view3d (versioning)",
+ RGN_TYPE_UI);
+ if (new_asset_shelf != nullptr) {
+ new_asset_shelf->alignment = RGN_ALIGN_BOTTOM;
+ new_asset_shelf->flag |= RGN_FLAG_HIDDEN;
+ }
+ }
+ }
+ }
+ }
}
}
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index a62e027ba03..3721774842c 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -1262,7 +1262,8 @@ bool ED_region_is_overlap(int spacetype, int regiontype)
RGN_TYPE_UI,
RGN_TYPE_TOOL_PROPS,
RGN_TYPE_FOOTER,
- RGN_TYPE_TOOL_HEADER)) {
+ RGN_TYPE_TOOL_HEADER,
+ RGN_TYPE_ASSET_SHELF)) {
return true;
}
}
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index 14ed5987cc7..0acae5b5ea5 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1435,7 +1435,8 @@ static bScreen *screen_state_to_nonnormal(bContext *C,
RGN_TYPE_FOOTER,
RGN_TYPE_TOOLS,
RGN_TYPE_NAV_BAR,
- RGN_TYPE_EXECUTE)) {
+ RGN_TYPE_EXECUTE,
+ RGN_TYPE_ASSET_SHELF)) {
region->flag |= RGN_FLAG_HIDDEN;
}
}
diff --git a/source/blender/editors/space_view3d/space_view3d.cc b/source/blender/editors/space_view3d/space_view3d.cc
index 05fb0c6a720..b2da6630b38 100644
--- a/source/blender/editors/space_view3d/space_view3d.cc
+++ b/source/blender/editors/space_view3d/space_view3d.cc
@@ -289,6 +289,14 @@ static SpaceLink *view3d_create(const ScrArea * /*area*/, const Scene *scene)
region->alignment = RGN_ALIGN_RIGHT;
region->flag = RGN_FLAG_HIDDEN;
+ /* asset shelf */
+ region = MEM_cnew<ARegion>("asset shelf for view3d");
+
+ BLI_addtail(&v3d->regionbase, region);
+ region->regiontype = RGN_TYPE_ASSET_SHELF;
+ region->alignment = RGN_ALIGN_BOTTOM;
+ region->flag = RGN_FLAG_HIDDEN;
+
/* main region */
region = MEM_cnew<ARegion>("main region for view3d");
@@ -2137,6 +2145,15 @@ void ED_spacetype_view3d()
art->draw = view3d_header_region_draw;
BLI_addhead(&st->regiontypes, art);
+ /* regions: asset shelf */
+ art = MEM_cnew<ARegionType>("spacetype view3d asset shelf region");
+ art->regionid = RGN_TYPE_ASSET_SHELF;
+ art->prefsizey = HEADERY * 4;
+ art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_VIEW2D | ED_KEYMAP_FRAMES | ED_KEYMAP_HEADER;
+ art->init = view3d_header_region_init;
+ art->draw = view3d_header_region_draw;
+ BLI_addhead(&st->regiontypes, art);
+
/* regions: hud */
art = ED_area_type_hud(st->spaceid);
BLI_addhead(&st->regiontypes, art);
diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h
index 4d4bd9ef775..4feab97b6b7 100644
--- a/source/blender/makesdna/DNA_screen_types.h
+++ b/source/blender/makesdna/DNA_screen_types.h
@@ -657,8 +657,9 @@ typedef enum eRegion_Type {
/* Region type used exclusively by internal code and add-ons to register draw callbacks to the XR
* context (surface, mirror view). Does not represent any real region. */
RGN_TYPE_XR = 13,
+ RGN_TYPE_ASSET_SHELF = 14,
-#define RGN_TYPE_NUM (RGN_TYPE_XR + 1)
+#define RGN_TYPE_NUM (RGN_TYPE_ASSET_SHELF + 1)
} eRegion_Type;
/* use for function args */
diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c
index a65bd613ecf..4d7354421ed 100644
--- a/source/blender/makesrna/intern/rna_screen.c
+++ b/source/blender/makesrna/intern/rna_screen.c
@@ -26,6 +26,7 @@ const EnumPropertyItem rna_enum_region_type_items[] = {
{RGN_TYPE_UI, "UI", 0, "UI", ""},
{RGN_TYPE_TOOLS, "TOOLS", 0, "Tools", ""},
{RGN_TYPE_TOOL_PROPS, "TOOL_PROPS", 0, "Tool Properties", ""},
+ {RGN_TYPE_ASSET_SHELF, "ASSET_SHELF", 0, "Asset Shelf", ""},
{RGN_TYPE_PREVIEW, "PREVIEW", 0, "Preview", ""},
{RGN_TYPE_HUD, "HUD", 0, "Floating Region", ""},
{RGN_TYPE_NAV_BAR, "NAVIGATION_BAR", 0, "Navigation Bar", ""},
More information about the Bf-blender-cvs
mailing list