[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