Mask *ED_mask_new(bContext *C, const char *name) { ScrArea *sa = CTX_wm_area(C); Main *bmain = CTX_data_main(C); Mask *mask; mask = BKE_mask_new(bmain, name); if (sa && sa->spacedata.first) { switch (sa->spacetype) { case SPACE_CLIP: { SpaceClip *sc = sa->spacedata.first; ED_space_clip_set_mask(C, sc, mask); break; } case SPACE_SEQ: { /* do nothing */ break; } case SPACE_IMAGE: { SpaceImage *sima = sa->spacedata.first; ED_space_image_set_mask(C, sima, mask); break; } } } return mask; }
static int mask_new_exec(bContext *C, wmOperator *op) { ScrArea *sa = CTX_wm_area(C); Mask *mask; char name[MAX_ID_NAME - 2]; RNA_string_get(op->ptr, "name", name); mask = BKE_mask_new(name); if (sa && sa->spacedata.first) { switch (sa->spacetype) { case SPACE_CLIP: { SpaceClip *sc = sa->spacedata.first; ED_space_clip_set_mask(C, sc, mask); break; } case SPACE_SEQ: { /* do nothing */ break; } case SPACE_IMAGE: { SpaceImage *sima = sa->spacedata.first; ED_space_image_set_mask(C, sima, mask); break; } } } return OPERATOR_FINISHED; }