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

@@@ -76,25 -70,22 +76,25 @@@ typedef struct SpaceType 
        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);
  
        /* 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);
@@@ -349,16 -317,7 +349,15 @@@ float BKE_screen_view3d_zoom_to_fac(flo
  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