Merge branch 'master' into blender2.8
authorCampbell Barton <ideasman42@gmail.com>
Sun, 3 Jun 2018 15:09:07 +0000 (17:09 +0200)
committerCampbell Barton <ideasman42@gmail.com>
Sun, 3 Jun 2018 15:09:07 +0000 (17:09 +0200)
1  2 
source/blender/blenkernel/BKE_screen.h
source/blender/makesdna/DNA_space_types.h

index c560e4d4de13b6a39acfa23d69e13bbe884b92e5,44f5d9a393e5c4b953ae77fa592796781c806e0d..f284e633c5e1da8d99225117050affabac3fef83
@@@ -41,9 -41,7 +41,9 @@@ struct Menu
  struct Panel;
  struct Scene;
  struct ScrArea;
 +struct ScrVert;
  struct SpaceType;
 +struct TransformOrientation;
  struct View3D;
  struct bContext;
  struct bContextDataResult;
@@@ -51,20 -49,16 +51,20 @@@ struct bScreen
  struct uiLayout;
  struct uiList;
  struct wmKeyConfig;
 +struct wmManipulatorMap;
  struct wmNotifier;
  struct wmWindow;
  struct wmWindowManager;
 +struct WorkSpace;
  struct GPUFXSettings;
 +struct wmMsgBus;
 +struct ScrAreaMap;
  
  #include "BLI_compiler_attrs.h"
  
  #include "RNA_types.h"
  
- /* spacetype has everything stored to get an editor working, it gets initialized via 
+ /* spacetype has everything stored to get an editor working, it gets initialized via
   * ED_spacetypes_init() in editors/space_api/spacetypes.c   */
  /* an editor in Blender is a combined ScrArea + SpaceType + SpaceData */
  
  
  typedef struct SpaceType {
        struct SpaceType *next, *prev;
-       
        char name[BKE_ST_MAXNAME];                  /* for menus */
        int spaceid;                                /* unique space identifier */
        int iconid;                                 /* icon lookup for menus */
-       
 -      /* initial allocation, after this WM will call init() too */
 -      struct SpaceLink    *(*new)(const struct bContext *C);
 +      /* Initial allocation, after this WM will call init() too. Some editors need
 +       * area and scene data (e.g. frame range) to set their initial scrolling. */
 +      struct SpaceLink *(*new)(const struct ScrArea *sa, const struct Scene *scene);
        /* not free spacelink itself */
        void (*free)(struct SpaceLink *sl);
-       
        /* init is to cope with file load, screen (size) changes, check handlers */
        void (*init)(struct wmWindowManager *wm, struct ScrArea *sa);
        /* exit is called when the area is hidden or removed */
        void (*exit)(struct wmWindowManager *wm, struct ScrArea *sa);
        /* Listeners can react to bContext changes */
 -      void (*listener)(struct bScreen *sc, struct ScrArea *sa, struct wmNotifier *wmn);
 +      void (*listener)(struct bScreen *sc, struct ScrArea *sa,
 +                       struct wmNotifier *wmn, struct Scene *scene,
 +                       struct WorkSpace *workspace);
-       
        /* refresh context, called after filereads, ED_area_tag_refresh() */
        void (*refresh)(const struct bContext *C, struct ScrArea *sa);
-       
        /* after a spacedata copy, an init should result in exact same situation */
        struct SpaceLink *(*duplicate)(struct SpaceLink *sl);
  
        /* on startup, define dropboxes for spacetype+regions */
        void (*dropboxes)(void);
  
 +      /* initialize manipulator-map-types and manipulator-group-types with the region */
 +      void (*manipulators)(void);
 +
        /* return context data */
        int (*context)(const struct bContext *C, const char *member, struct bContextDataResult *result);
  
        /* Used when we want to replace an ID by another (or NULL). */
        void (*id_remap)(struct ScrArea *sa, struct SpaceLink *sl, struct ID *old_id, struct ID *new_id);
  
 +      int  (*space_subtype_get)(struct ScrArea *sa);
 +      void (*space_subtype_set)(struct ScrArea *sa, int value);
 +      void (*space_subtype_item_extend)(struct bContext *C, EnumPropertyItem **item, int *totitem);
 +
        /* region type definitions */
        ListBase regiontypes;
-       
        /* tool shelf definitions */
        ListBase toolshelf;
-               
        /* read and write... */
-       
        /* default keymaps to add */
        int keymapflag;
-       
  } SpaceType;
  
  /* region types are also defined using spacetypes_init, via a callback */
  
  typedef struct ARegionType {
        struct ARegionType *next, *prev;
-       
 -      /* unique identifier within this space, defines RGN_TYPE_xxxx */
 -      int regionid;
 +      int regionid;           /* unique identifier within this space, defines RGN_TYPE_xxxx */
-       
        /* add handlers, stuff you only do once or on area/region type/size changes */
        void (*init)(struct wmWindowManager *wm, struct ARegion *ar);
        /* exit is called when the region is hidden or removed */
        void (*exit)(struct wmWindowManager *wm, struct ARegion *ar);
        /* draw entirely, view changes should be handled here */
-       void (*draw)(const struct bContext *wm, struct ARegion *ar);
+       void (*draw)(const struct bContext *C, struct ARegion *ar);
 +      /* optional, compute button layout before drawing for dynamic size */
 +      void (*layout)(const struct bContext *C, struct ARegion *ar);
 +      /* snap the size of the region (can be NULL for no snapping). */
 +      int (*snap_size)(const struct ARegion *ar, int size, int axis);
        /* contextual changes should be handled here */
 -      void (*listener)(struct bScreen *sc, struct ScrArea *sa, struct ARegion *ar, struct wmNotifier *wmn);
 +      void (*listener)(struct bScreen *sc, struct ScrArea *sa, struct ARegion *ar,
 +                       struct wmNotifier *wmn, const struct Scene *scene);
 +      /* Optional callback to generate subscriptions. */
 +      void (*message_subscribe)(
 +              const struct bContext *C,
 +              struct WorkSpace *workspace, struct Scene *scene,
 +              struct bScreen *sc, struct ScrArea *sa, struct ARegion *ar,
 +              struct wmMsgBus *mbus);
  
 -      void (*free)(struct ARegion *ar);
 +      void (*free)(struct ARegion *);
  
        /* split region, copy data optionally */
        void *(*duplicate)(void *poin);
  
-       
        /* register operator types on startup */
        void (*operatortypes)(void);
        /* add own items to keymap */
  
        /* header type definitions */
        ListBase headertypes;
-       
        /* hardcoded constraints, smaller than these values region is not visible */
        int minsizex, minsizey;
        /* when new region opens (region prefsizex/y are zero then */
  
  typedef struct PanelType {
        struct PanelType *next, *prev;
-       
        char idname[BKE_ST_MAXNAME];              /* unique name */
        char label[BKE_ST_MAXNAME];               /* for panel header */
        char translation_context[BKE_ST_MAXNAME];
        char context[BKE_ST_MAXNAME];             /* for buttons window */
        char category[BKE_ST_MAXNAME];            /* for category tabs */
 +      char owner_id[BKE_ST_MAXNAME];              /* for work-spaces to selectively show. */
        int space_type;
        int region_type;
  
@@@ -258,7 -231,6 +258,7 @@@ typedef struct HeaderType 
  
        char idname[BKE_ST_MAXNAME];        /* unique name */
        int space_type;
 +      int region_type;
  
        /* draw entirely, view changes should be handled here */
        void (*draw)(const struct bContext *C, struct Header *header);
@@@ -281,7 -253,6 +281,7 @@@ typedef struct MenuType 
        char idname[BKE_ST_MAXNAME];        /* unique name */
        char label[BKE_ST_MAXNAME];         /* for button text */
        char translation_context[BKE_ST_MAXNAME];
 +      char owner_id[BKE_ST_MAXNAME];  /* optional, see: #wmOwnerID */
        const char *description;
  
        /* verify if the menu should draw or not */
@@@ -319,9 -290,6 +319,9 @@@ void BKE_spacedata_id_unref(struct ScrA
  struct ARegion *BKE_area_region_copy(struct SpaceType *st, struct ARegion *ar);
  void            BKE_area_region_free(struct SpaceType *st, struct ARegion *ar);
  void            BKE_screen_area_free(struct ScrArea *sa);
 +/* Manipulator-maps of a region need to be freed with the region. Uses callback to avoid low-level call. */
 +void BKE_region_callback_free_manipulatormap_set(void (*callback)(struct wmManipulatorMap *));
 +void BKE_region_callback_refresh_tag_manipulatormap_set(void (*callback)(struct wmManipulatorMap *));
  
  struct ARegion *BKE_area_find_region_type(struct ScrArea *sa, int type);
  struct ARegion *BKE_area_find_region_active_win(struct ScrArea *sa);
@@@ -337,28 -305,19 +337,27 @@@ unsigned int BKE_screen_view3d_layer_ac
  
  unsigned int BKE_screen_view3d_layer_all(const struct bScreen *sc) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1);
  
 +void BKE_screen_manipulator_tag_refresh(struct bScreen *sc);
 +
  void BKE_screen_view3d_sync(struct View3D *v3d, struct Scene *scene);
 -void BKE_screen_view3d_scene_sync(struct bScreen *sc);
 -void BKE_screen_view3d_main_sync(ListBase *screen_lb, struct Scene *scene);
 -void BKE_screen_view3d_twmode_remove(struct View3D *v3d, const int i);
 -void BKE_screen_view3d_main_twmode_remove(ListBase *screen_lb, struct Scene *scene, const int i);
 -void BKE_screen_gpu_fx_validate(struct GPUFXSettings *fx_settings);
 +void BKE_screen_view3d_scene_sync(struct bScreen *sc, struct Scene *scene);
 +bool BKE_screen_is_fullscreen_area(const struct bScreen *screen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
 +bool BKE_screen_is_used(const struct bScreen *screen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
  
  /* zoom factor conversion */
  float BKE_screen_view3d_zoom_to_fac(float camzoom);
  float BKE_screen_view3d_zoom_from_fac(float zoomfac);
  
  /* screen */
- void BKE_screen_free(struct bScreen *sc); 
+ void BKE_screen_free(struct bScreen *sc);
 +void BKE_screen_area_map_free(struct ScrAreaMap *area_map) ATTR_NONNULL();
  unsigned int BKE_screen_visible_layers(struct bScreen *screen, struct Scene *scene);
  
 -#endif  /* __BKE_SCREEN_H__ */
 +struct ScrEdge *BKE_screen_find_edge(struct bScreen *sc, struct ScrVert *v1, struct ScrVert *v2);
 +void BKE_screen_sort_scrvert(struct ScrVert **v1, struct ScrVert **v2);
 +void BKE_screen_remove_double_scrverts(struct bScreen *sc);
 +void BKE_screen_remove_double_scredges(struct bScreen *sc);
 +void BKE_screen_remove_unused_scredges(struct bScreen *sc);
 +void BKE_screen_remove_unused_scrverts(struct bScreen *sc);
 +
 +#endif
index 1b55a97754a1d5db8f5d8ac5b58f2fdd82fb9cd5,76ec6569b824ee58c15446f6c8d28d0711e03c80..d867e05f20958fb6fc0ef613ab6db88332093145
@@@ -67,11 -67,6 +67,11 @@@ struct MovieClipScopes
  struct Mask;
  struct BLI_mempool;
  
 +/* TODO 2.8: We don't write the global areas to files currently. Uncomment
 + * define to enable writing (should become the default in a bit). */
 +//#define WITH_GLOBAL_AREA_WRITING
 +
 +
  /* -------------------------------------------------------------------- */
  /** \name SpaceLink (Base)
   * \{ */
@@@ -89,6 -84,8 +89,8 @@@ typedef struct SpaceLink 
        char _pad0[6];
  } SpaceLink;
  
+ /** \} */
  /* -------------------------------------------------------------------- */
  /** \name Space Info
   * \{ */
@@@ -132,14 -129,12 +134,14 @@@ typedef struct SpaceButs 
  
        View2D v2d DNA_DEPRECATED;                      /* deprecated, copied to region */
  
 +      /* For different kinds of property editors (exposed in the space type selector). */
 +      short space_subtype;
 +
        short mainb, mainbo, mainbuser; /* context tabs */
        short re_align, align;          /* align for panels */
        short preview;                  /* preview is signal to refresh */
 -      /* texture context selector (material, lamp, particles, world, other) */
 -      short texture_context, texture_context_prev;
 -      char flag, pad[7];
 +      char flag;
 +      char collection_context;
  
        void *path;                     /* runtime */
        int pathflag, dataicon;         /* runtime */
  #define CONTEXT_SHADING 3
  #define CONTEXT_EDITING 4
  // #define CONTEXT_SCRIPT  5
 -#define CONTEXT_LOGIC   6
 +// #define CONTEXT_LOGIC   6
  
  /* SpaceButs.mainb old (deprecated) */
  // #define BUTS_VIEW           0
  #define BUTS_WORLD          5
  #define BUTS_RENDER         6
  #define BUTS_EDIT           7
 -#define BUTS_GAME           8
 +// #define BUTS_GAME           8
  #define BUTS_FPAINT         9
  #define BUTS_RADIO          10
  #define BUTS_SCRIPT         11
@@@ -193,8 -188,7 +195,8 @@@ typedef enum eSpaceButtons_Context 
        BCONTEXT_MODIFIER = 10,
        BCONTEXT_CONSTRAINT = 11,
        BCONTEXT_BONE_CONSTRAINT = 12,
 -      BCONTEXT_RENDER_LAYER = 13,
 +      BCONTEXT_VIEW_LAYER = 13,
 +      BCONTEXT_WORKSPACE = 15,
  
        /* always as last... */
        BCONTEXT_TOT
@@@ -210,6 -204,16 +212,6 @@@ typedef enum eSpaceButtons_Flag 
        SB_SHADING_CONTEXT = (1 << 4),
  } eSpaceButtons_Flag;
  
 -/* SpaceButs.texture_context */
 -typedef enum eSpaceButtons_Texture_Context {
 -      SB_TEXC_MATERIAL = 0,
 -      SB_TEXC_WORLD = 1,
 -      SB_TEXC_LAMP = 2,
 -      SB_TEXC_PARTICLES = 3,
 -      SB_TEXC_OTHER = 4,
 -      SB_TEXC_LINESTYLE = 5,
 -} eSpaceButtons_Texture_Context;
 -
  /* SpaceButs.align */
  typedef enum eSpaceButtons_Align {
        BUT_FREE = 0,
        BUT_AUTO = 3,
  } eSpaceButtons_Align;
  
 -/* SpaceButs.scaflag */
 -#define BUTS_SENS_SEL           1
 -#define BUTS_SENS_ACT           2
 -#define BUTS_SENS_LINK          4
 -#define BUTS_CONT_SEL           8
 -#define BUTS_CONT_ACT           16
 -#define BUTS_CONT_LINK          32
 -#define BUTS_ACT_SEL            64
 -#define BUTS_ACT_ACT            128
 -#define BUTS_ACT_LINK           256
 -#define BUTS_SENS_STATE         512
 -#define BUTS_ACT_STATE          1024
 -#define BUTS_CONT_INIT_STATE    2048
 -
 +/* SpaceButs.flag */
 +typedef enum eSpaceButtons_SubType {
 +      SB_SUBTYPE_DATA = 0,
 +      SB_SUBTYPE_TOOL = 1,
 +} eSpaceButtons_SubType;
  
  /** \} */
  
@@@ -256,10 -269,6 +258,10 @@@ typedef struct SpaceOops 
        struct TreeStoreElem search_tse;
  
        short flag, outlinevis, storeflag, search_flags;
 +      int filter;
 +      char filter_state;
 +      char pad;
 +      short filter_id_type;
  
        /* pointers to treestore elements, grouped by (id, type, nr) in hashtable for faster searching */
        void *treehash;
@@@ -275,81 -284,31 +277,81 @@@ typedef enum eSpaceOutliner_Flag 
        SO_SKIP_SORT_ALPHA      = (1 << 4),
  } eSpaceOutliner_Flag;
  
 +/* SpaceOops.filter */
 +typedef enum eSpaceOutliner_Filter {
 +      SO_FILTER_SEARCH           = (1 << 0),
 +      /* SO_FILTER_ENABLE           = (1 << 1), */ /* Deprecated */
 +      SO_FILTER_NO_OBJECT        = (1 << 2),
 +      SO_FILTER_NO_OB_CONTENT    = (1 << 3), /* Not only mesh, but modifiers, constraints, ... */
 +      SO_FILTER_NO_CHILDREN      = (1 << 4),
 +
 +      /* SO_FILTER_OB_TYPE          = (1 << 5), */ /* Deprecated */
 +      SO_FILTER_NO_OB_MESH       = (1 << 6),
 +      SO_FILTER_NO_OB_ARMATURE   = (1 << 7),
 +      SO_FILTER_NO_OB_EMPTY      = (1 << 8),
 +      SO_FILTER_NO_OB_LAMP       = (1 << 9),
 +      SO_FILTER_NO_OB_CAMERA     = (1 << 10),
 +      SO_FILTER_NO_OB_OTHERS     = (1 << 11),
 +
 +      /* SO_FILTER_OB_STATE          = (1 << 12), */ /* Deprecated */
 +      SO_FILTER_OB_STATE_VISIBLE  = (1 << 13), /* Not set via DNA. */
 +      SO_FILTER_OB_STATE_SELECTED = (1 << 14), /* Not set via DNA. */
 +      SO_FILTER_OB_STATE_ACTIVE   = (1 << 15), /* Not set via DNA. */
 +      SO_FILTER_NO_COLLECTION     = (1 << 16),
 +
 +      SO_FILTER_ID_TYPE           = (1 << 17),
 +} eSpaceOutliner_Filter;
 +
 +#define SO_FILTER_OB_TYPE (SO_FILTER_NO_OB_MESH | \
 +                           SO_FILTER_NO_OB_ARMATURE | \
 +                           SO_FILTER_NO_OB_EMPTY | \
 +                           SO_FILTER_NO_OB_LAMP | \
 +                           SO_FILTER_NO_OB_CAMERA | \
 +                           SO_FILTER_NO_OB_OTHERS)
 +
 +#define SO_FILTER_OB_STATE (SO_FILTER_OB_STATE_VISIBLE | \
 +                            SO_FILTER_OB_STATE_SELECTED | \
 +                            SO_FILTER_OB_STATE_ACTIVE)
 +
 +#define SO_FILTER_ANY (SO_FILTER_NO_OB_CONTENT | \
 +                       SO_FILTER_NO_CHILDREN | \
 +                       SO_FILTER_OB_TYPE | \
 +                       SO_FILTER_OB_STATE | \
 +                       SO_FILTER_NO_COLLECTION)
 +
 +/* SpaceOops.filter_state */
 +typedef enum eSpaceOutliner_StateFilter {
 +      SO_FILTER_OB_ALL           = 0,
 +      SO_FILTER_OB_VISIBLE       = 1,
 +      SO_FILTER_OB_SELECTED      = 2,
 +      SO_FILTER_OB_ACTIVE        = 3,
 +} eSpaceOutliner_StateFilter;
 +
  /* SpaceOops.outlinevis */
  typedef enum eSpaceOutliner_Mode {
 -      SO_ALL_SCENES = 0,
 -      SO_CUR_SCENE = 1,
 -      SO_VISIBLE = 2,
 -      SO_SELECTED = 3,
 -      SO_ACTIVE = 4,
 -      SO_SAME_TYPE = 5,
 -      SO_GROUPS = 6,
 -      SO_LIBRARIES = 7,
 -      /* SO_VERSE_SESSION = 8, */  /* deprecated! */
 -      /* SO_VERSE_MS = 9, */       /* deprecated! */
 -      SO_SEQUENCE = 10,
 -      SO_DATABLOCKS = 11,
 -      SO_USERDEF = 12,
 -      /* SO_KEYMAP = 13, */        /* deprecated! */
 -      SO_ID_ORPHANS = 14,
 +      SO_SCENES            = 0,
 +      /* SO_CUR_SCENE      = 1, */  /* deprecated! */
 +      /* SO_VISIBLE        = 2, */  /* deprecated! */
 +      /* SO_SELECTED       = 3, */  /* deprecated! */
 +      /* SO_ACTIVE         = 4, */  /* deprecated! */
 +      /* SO_SAME_TYPE      = 5, */  /* deprecated! */
 +      /* SO_GROUPS         = 6, */  /* deprecated! */
 +      SO_LIBRARIES         = 7,
 +      /* SO_VERSE_SESSION  = 8, */  /* deprecated! */
 +      /* SO_VERSE_MS       = 9, */  /* deprecated! */
 +      SO_SEQUENCE          = 10,
 +      SO_DATA_API          = 11,
 +      /* SO_USERDEF        = 12, */  /* deprecated! */
 +      /* SO_KEYMAP         = 13, */  /* deprecated! */
 +      SO_ID_ORPHANS        = 14,
 +      SO_VIEW_LAYER        = 15,
  } eSpaceOutliner_Mode;
  
  /* SpaceOops.storeflag */
  typedef enum eSpaceOutliner_StoreFlag {
        /* cleanup tree */
        SO_TREESTORE_CLEANUP    = (1 << 0),
 -      /* if set, it allows redraws. gets set for some allqueue events */
 -      SO_TREESTORE_REDRAW     = (1 << 1),
 +      /* SO_TREESTORE_REDRAW     = (1 << 1), */ /* Deprecated */
        /* rebuild the tree, similar to cleanup,
         * but defer a call to BKE_outliner_treehash_rebuild_from_treestore instead */
        SO_TREESTORE_REBUILD    = (1 << 2),
@@@ -484,6 -443,43 +486,6 @@@ typedef enum eSpaceNla_Flag 
  /** \name Timeline
   * \{ */
  
 -/* Pointcache drawing data */
 -# /* Only store the data array in the cache to avoid constant reallocation. */
 -# /* No need to store when saved. */
 -typedef struct SpaceTimeCache {
 -      struct SpaceTimeCache *next, *prev;
 -      float *array;
 -} SpaceTimeCache;
 -
 -/* Timeline View */
 -typedef struct SpaceTime {
 -      SpaceLink *next, *prev;
 -      ListBase regionbase;        /* storage of regions for inactive spaces */
 -      char spacetype;
 -      char link_flag;
 -      char _pad0[6];
 -      /* End 'SpaceLink' header. */
 -
 -
 -      View2D v2d DNA_DEPRECATED;  /* deprecated, copied to region */
 -
 -      ListBase caches;
 -
 -      int cache_display;
 -      int flag;
 -} SpaceTime;
 -
 -
 -/* SpaceTime.flag */
 -typedef enum eTimeline_Flag {
 -      /* show timing in frames instead of in seconds */
 -      TIME_DRAWFRAMES    = (1 << 0),
 -      /* show time indicator box beside the frame number */
 -      TIME_CFRA_NUM      = (1 << 1),
 -      /* only keyframes from active/selected channels get shown */
 -      TIME_ONLYACTSEL    = (1 << 2),
 -} eTimeline_Flag;
 -
  /* SpaceTime.redraws (now bScreen.redraws_flag) */
  typedef enum eScreen_Redraws_Flag {
        TIME_REGION            = (1 << 0),
        TIME_FOLLOW            = (1 << 15),
  } eScreen_Redraws_Flag;
  
 -/* SpaceTime.cache */
 -typedef enum eTimeline_Cache_Flag {
 -      TIME_CACHE_DISPLAY       = (1 << 0),
 -      TIME_CACHE_SOFTBODY      = (1 << 1),
 -      TIME_CACHE_PARTICLES     = (1 << 2),
 -      TIME_CACHE_CLOTH         = (1 << 3),
 -      TIME_CACHE_SMOKE         = (1 << 4),
 -      TIME_CACHE_DYNAMICPAINT  = (1 << 5),
 -      TIME_CACHE_RIGIDBODY     = (1 << 6),
 -} eTimeline_Cache_Flag;
 -
  /** \} */
  
  /* -------------------------------------------------------------------- */
@@@ -686,6 -693,17 +688,6 @@@ typedef struct SpaceFile 
        short systemnr, system_bookmarknr;
  } SpaceFile;
  
 -/* FSMenuEntry's without paths indicate separators */
 -typedef struct FSMenuEntry {
 -      struct FSMenuEntry *next;
 -
 -      char *path;
 -      char name[256];  /* FILE_MAXFILE */
 -      short save;
 -      short valid;
 -      short pad[2];
 -} FSMenuEntry;
 -
  /* FileSelectParams.display */
  enum eFileDisplayType {
        FILE_DEFAULTDISPLAY = 0,
@@@ -735,7 -753,7 +737,7 @@@ typedef enum eFileSel_Params_Flag 
        FILE_LINK           = (1 << 2),
        FILE_HIDE_DOT       = (1 << 3),
        FILE_AUTOSELECT     = (1 << 4),
 -      FILE_ACTIVELAY      = (1 << 5),
 +      FILE_ACTIVE_COLLECTION = (1 << 5),
  /*  FILE_ATCURSOR       = (1 << 6), */ /* deprecated */
        FILE_DIRSEL_ONLY    = (1 << 7),
        FILE_FILTER         = (1 << 8),
@@@ -970,7 -988,7 +972,7 @@@ typedef enum eSpaceImage_Sticky 
  /* SpaceImage.flag */
  typedef enum eSpaceImage_Flag {
  /*    SI_BE_SQUARE          = (1 << 0), */  /* deprecated */
 -      SI_EDITTILE           = (1 << 1),     /* XXX - not used but should be? */
 +/*    SI_EDITTILE           = (1 << 1), */  /* deprecated */
        SI_CLIP_UV            = (1 << 2),
  /*    SI_DRAWTOOL           = (1 << 3), */  /* deprecated */
        SI_NO_DRAWFACES       = (1 << 4),
@@@ -1199,14 -1217,14 +1201,14 @@@ typedef enum eSpaceNode_Flag 
        SNODE_AUTO_RENDER    = (1 << 5),
  //    SNODE_SHOW_HIGHLIGHT = (1 << 6), DNA_DEPRECATED
  //    SNODE_USE_HIDDEN_PREVIEW = (1 << 10), DNA_DEPRECATED December2013
 -      SNODE_NEW_SHADERS    = (1 << 11),
 +//    SNODE_NEW_SHADERS    = (1 << 11), DNA_DEPRECATED
        SNODE_PIN            = (1 << 12),
        SNODE_SKIP_INSOFFSET = (1 << 13), /* automatically offset following nodes in a chain on insertion */
  } eSpaceNode_Flag;
  
  /* SpaceNode.texfrom */
  typedef enum eSpaceNode_TexFrom {
 -      SNODE_TEX_OBJECT   = 0,
 +      /* SNODE_TEX_OBJECT   = 0, */
        SNODE_TEX_WORLD    = 1,
        SNODE_TEX_BRUSH    = 2,
        SNODE_TEX_LINESTYLE = 3,
@@@ -1227,6 -1245,27 +1229,6 @@@ enum 
  
  /** \} */
  
 -/* -------------------------------------------------------------------- */
 -/** \name Game Logic Editor
 - * \{ */
 -
 -/* Logic Editor */
 -typedef struct SpaceLogic {
 -      SpaceLink *next, *prev;
 -      ListBase regionbase;        /* storage of regions for inactive spaces */
 -      char spacetype;
 -      char link_flag;
 -      char _pad0[6];
 -      /* End 'SpaceLink' header. */
 -
 -      short flag, scaflag;
 -      int pad;
 -
 -      struct bGPdata *gpd;        /* grease-pencil data */
 -} SpaceLogic;
 -
 -/** \} */
 -
  /* -------------------------------------------------------------------- */
  /** \name Console
   * \{ */
@@@ -1391,49 -1430,10 +1393,49 @@@ typedef enum eSpaceClip_GPencil_Source 
        SC_GPENCIL_SRC_TRACK = 1,
  } eSpaceClip_GPencil_Source;
  
 +
 +/** \} */
 +
 +/* -------------------------------------------------------------------- */
 +/** \name Top Bar
 + * \{ */
 +
 +/* These two lines with # tell makesdna this struct can be excluded.
 + * Should be: #ifndef WITH_GLOBAL_AREA_WRITING */
 +#
 +#
 +typedef struct SpaceTopBar {
 +      SpaceLink *next, *prev;
 +      ListBase regionbase;        /* storage of regions for inactive spaces */
 +      char spacetype;
 +      char link_flag;
 +      char _pad0[6];
 +      /* End 'SpaceLink' header. */
 +} SpaceTopBar;
 +
 +/** \} */
 +
 +/* -------------------------------------------------------------------- */
 +/** \name Status Bar
 + * \{ */
 +
 +/* These two lines with # tell makesdna this struct can be excluded.
 + * Should be: #ifndef WITH_GLOBAL_AREA_WRITING */
 +#
 +#
 +typedef struct SpaceStatusBar {
 +      SpaceLink *next, *prev;
 +      ListBase regionbase;        /* storage of regions for inactive spaces */
 +      char spacetype;
 +      char link_flag;
 +      char _pad0[6];
 +      /* End 'SpaceLink' header. */
 +} SpaceStatusBar;
 +
  /** \} */
  
  /* -------------------------------------------------------------------- */
- /** \name Space Type Definitions
+ /** \name Space Defines (eSpace_Type)
   * \{ */
  
  /* space types, moved from DNA_screen_types.h */
@@@ -1457,16 -1457,14 +1459,16 @@@ typedef enum eSpace_Type 
        SPACE_NLA      = 13,
        /* TODO: fully deprecate */
        SPACE_SCRIPT   = 14, /* Deprecated */
 -      SPACE_TIME     = 15,
 +      SPACE_TIME     = 15, /* Deprecated */
        SPACE_NODE     = 16,
 -      SPACE_LOGIC    = 17,
 +      SPACE_LOGIC    = 17, /* deprecated */
        SPACE_CONSOLE  = 18,
        SPACE_USERPREF = 19,
        SPACE_CLIP     = 20,
 +      SPACE_TOPBAR   = 21,
 +      SPACE_STATUSBAR = 22,
  
 -      SPACE_TYPE_LAST = SPACE_CLIP
 +      SPACE_TYPE_LAST = SPACE_STATUSBAR
  } eSpace_Type;
  
  /* use for function args */