diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-12-16 20:21:55 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-12-16 20:55:45 +0400 |
commit | a621d1e48828d02a5e097dcfc218cc11d149e75f (patch) | |
tree | 3cb9594e0b70fe0ac46d7fc22c05b1ec9b977c72 /source/blender/blenloader | |
parent | 2231b565f011e984d4ee6eeb33a80567b404e032 (diff) |
UI: Tabs categories for panels (D75)
- works by defining panel categories, currently restricted to the toolbar.
- no panels define bl_categories yet, so no user visible changes since tabs only show when there are multiple.
- panel pinning is available in rmb menu or alt+lmb.
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 3 | ||||
-rw-r--r-- | source/blender/blenloader/intern/writefile.c | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index e5304c7e9d8..ac34f81907a 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6125,6 +6125,8 @@ static void direct_link_region(FileData *fd, ARegion *ar, int spacetype) pa->type = NULL; } + link_list(fd, &ar->panels_category_active); + link_list(fd, &ar->ui_lists); for (ui_list = ar->ui_lists.first; ui_list; ui_list = ui_list->next) { @@ -6161,6 +6163,7 @@ static void direct_link_region(FileData *fd, ARegion *ar, int spacetype) ar->v2d.tab_num = 0; ar->v2d.tab_cur = 0; ar->v2d.sms = NULL; + ar->panels_category.first = ar->panels_category.last = NULL; ar->handlers.first = ar->handlers.last = NULL; ar->uiblocks.first = ar->uiblocks.last = NULL; ar->headerstr = NULL; diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 398847348cc..be81f355e26 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -2488,6 +2488,7 @@ static void write_screens(WriteData *wd, ListBase *scrbase) SpaceLink *sl; Panel *pa; uiList *ui_list; + PanelCategoryStack *pc_act; ARegion *ar; writestruct(wd, DATA, "ScrArea", 1, sa); @@ -2498,6 +2499,9 @@ static void write_screens(WriteData *wd, ListBase *scrbase) for (pa= ar->panels.first; pa; pa= pa->next) writestruct(wd, DATA, "Panel", 1, pa); + for (pc_act = ar->panels_category_active.first; pc_act; pc_act = pc_act->next) + writestruct(wd, DATA, "PanelCategoryStack", 1, pc_act); + for (ui_list = ar->ui_lists.first; ui_list; ui_list = ui_list->next) write_uilist(wd, ui_list); } |