87
88
/* context may be NULL, so use global */
88
89
ED_uvedit_assign_image(G.main, scene, obedit, ima, sima->image);
90
/* change the space ima after because uvedit_face_visible uses the space ima
91
/* change the space ima after because uvedit_face_visible_test uses the space ima
91
92
* to check if the face is displayed in UV-localview */
94
if(ima == NULL || ima->type==IMA_TYPE_R_RESULT || ima->type==IMA_TYPE_COMPOSITE)
95
if (ima == NULL || ima->type == IMA_TYPE_R_RESULT || ima->type == IMA_TYPE_COMPOSITE)
95
96
sima->flag &= ~SI_DRAWTOOL;
98
99
BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_USER_NEW_IMAGE);
100
if(sima->image && sima->image->id.us==0)
101
sima->image->id.us= 1;
101
if (sima->image && sima->image->id.us == 0)
102
sima->image->id.us = 1;
104
WM_main_add_notifier(NC_GEOM|ND_DATA, obedit->data);
105
WM_main_add_notifier(NC_GEOM | ND_DATA, obedit->data);
106
WM_main_add_notifier(NC_SPACE|ND_SPACE_IMAGE, NULL);
107
WM_main_add_notifier(NC_SPACE | ND_SPACE_IMAGE, NULL);
109
110
ImBuf *ED_space_image_acquire_buffer(SpaceImage *sima, void **lock_r)
113
if(sima && sima->image) {
114
if (sima && sima->image) {
115
if(sima->image->type==IMA_TYPE_R_RESULT && BIF_show_render_spare())
116
if (sima->image->type == IMA_TYPE_R_RESULT && BIF_show_render_spare())
116
117
return BIF_render_spare_imbuf();
119
ibuf= BKE_image_acquire_ibuf(sima->image, &sima->iuser, lock_r);
120
ibuf = BKE_image_acquire_ibuf(sima->image, &sima->iuser, lock_r);
121
if(ibuf && (ibuf->rect || ibuf->rect_float))
122
if (ibuf && (ibuf->rect || ibuf->rect_float))
147
148
void ED_image_size(Image *ima, int *width, int *height)
153
ibuf= BKE_image_acquire_ibuf(ima, NULL, &lock);
154
ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock);
155
if(ibuf && ibuf->x > 0 && ibuf->y > 0) {
156
if (ibuf && ibuf->x > 0 && ibuf->y > 0) {
165
166
BKE_image_release_ibuf(ima, lock);
168
169
void ED_space_image_size(SpaceImage *sima, int *width, int *height)
170
Scene *scene= sima->iuser.scene;
171
Scene *scene = sima->iuser.scene;
174
ibuf= ED_space_image_acquire_buffer(sima, &lock);
175
ibuf = ED_space_image_acquire_buffer(sima, &lock);
176
if(ibuf && ibuf->x > 0 && ibuf->y > 0) {
177
if (ibuf && ibuf->x > 0 && ibuf->y > 0) {
180
else if(sima->image && sima->image->type==IMA_TYPE_R_RESULT && scene) {
181
else if (sima->image && sima->image->type == IMA_TYPE_R_RESULT && scene) {
181
182
/* not very important, just nice */
182
*width= (scene->r.xsch*scene->r.size)/100;
183
*height= (scene->r.ysch*scene->r.size)/100;
183
*width = (scene->r.xsch * scene->r.size) / 100;
184
*height = (scene->r.ysch * scene->r.size) / 100;
185
if((scene->r.mode & R_BORDER) && (scene->r.mode & R_CROP)) {
186
if ((scene->r.mode & R_BORDER) && (scene->r.mode & R_CROP)) {
186
187
*width *= (scene->r.border.xmax - scene->r.border.xmin);
187
188
*height *= (scene->r.border.ymax - scene->r.border.ymin);
191
192
/* I know a bit weak... but preview uses not actual image size */
192
// XXX else if(image_preview_active(sima, width, height));
193
// XXX else if (image_preview_active(sima, width, height));
198
199
ED_space_image_release_buffer(sima, lock);
329
328
ARegion *ar, *arnew;
331
ar= BKE_area_find_region_type(sa, RGN_TYPE_UI);
330
ar = BKE_area_find_region_type(sa, RGN_TYPE_UI);
334
333
/* add subdiv level; after header */
335
ar= BKE_area_find_region_type(sa, RGN_TYPE_HEADER);
334
ar = BKE_area_find_region_type(sa, RGN_TYPE_HEADER);
338
if(ar==NULL) return NULL;
337
if (ar == NULL) return NULL;
340
arnew= MEM_callocN(sizeof(ARegion), "buttons for image");
339
arnew = MEM_callocN(sizeof(ARegion), "buttons for image");
342
341
BLI_insertlinkafter(&sa->regionbase, ar, arnew);
343
arnew->regiontype= RGN_TYPE_UI;
344
arnew->alignment= RGN_ALIGN_LEFT;
342
arnew->regiontype = RGN_TYPE_UI;
343
arnew->alignment = RGN_ALIGN_LEFT;
346
345
arnew->flag = RGN_FLAG_HIDDEN;
353
352
ARegion *ar, *arnew;
355
ar= BKE_area_find_region_type(sa, RGN_TYPE_PREVIEW);
354
ar = BKE_area_find_region_type(sa, RGN_TYPE_PREVIEW);
358
357
/* add subdiv level; after buttons */
359
ar= BKE_area_find_region_type(sa, RGN_TYPE_UI);
358
ar = BKE_area_find_region_type(sa, RGN_TYPE_UI);
362
if(ar==NULL) return NULL;
361
if (ar == NULL) return NULL;
364
arnew= MEM_callocN(sizeof(ARegion), "scopes for image");
363
arnew = MEM_callocN(sizeof(ARegion), "scopes for image");
366
365
BLI_insertlinkafter(&sa->regionbase, ar, arnew);
367
arnew->regiontype= RGN_TYPE_PREVIEW;
368
arnew->alignment= RGN_ALIGN_RIGHT;
366
arnew->regiontype = RGN_TYPE_PREVIEW;
367
arnew->alignment = RGN_ALIGN_RIGHT;
370
369
arnew->flag = RGN_FLAG_HIDDEN;
382
381
SpaceImage *simage;
384
simage= MEM_callocN(sizeof(SpaceImage), "initimage");
385
simage->spacetype= SPACE_IMAGE;
390
simage->iuser.fie_ima= 2;
391
simage->iuser.frames= 100;
383
simage = MEM_callocN(sizeof(SpaceImage), "initimage");
384
simage->spacetype = SPACE_IMAGE;
388
simage->iuser.ok = 1;
389
simage->iuser.fie_ima = 2;
390
simage->iuser.frames = 100;
393
392
scopes_new(&simage->scopes);
394
simage->sample_line_hist.height= 100;
393
simage->sample_line_hist.height = 100;
397
ar= MEM_callocN(sizeof(ARegion), "header for image");
396
ar = MEM_callocN(sizeof(ARegion), "header for image");
399
398
BLI_addtail(&simage->regionbase, ar);
400
ar->regiontype= RGN_TYPE_HEADER;
401
ar->alignment= RGN_ALIGN_BOTTOM;
399
ar->regiontype = RGN_TYPE_HEADER;
400
ar->alignment = RGN_ALIGN_BOTTOM;
403
402
/* buttons/list view */
404
ar= MEM_callocN(sizeof(ARegion), "buttons for image");
403
ar = MEM_callocN(sizeof(ARegion), "buttons for image");
406
405
BLI_addtail(&simage->regionbase, ar);
407
ar->regiontype= RGN_TYPE_UI;
408
ar->alignment= RGN_ALIGN_LEFT;
406
ar->regiontype = RGN_TYPE_UI;
407
ar->alignment = RGN_ALIGN_LEFT;
409
408
ar->flag = RGN_FLAG_HIDDEN;
412
ar= MEM_callocN(sizeof(ARegion), "buttons for image");
411
ar = MEM_callocN(sizeof(ARegion), "buttons for image");
414
413
BLI_addtail(&simage->regionbase, ar);
415
ar->regiontype= RGN_TYPE_PREVIEW;
416
ar->alignment= RGN_ALIGN_RIGHT;
414
ar->regiontype = RGN_TYPE_PREVIEW;
415
ar->alignment = RGN_ALIGN_RIGHT;
417
416
ar->flag = RGN_FLAG_HIDDEN;
420
ar= MEM_callocN(sizeof(ARegion), "main area for image");
419
ar = MEM_callocN(sizeof(ARegion), "main area for image");
422
421
BLI_addtail(&simage->regionbase, ar);
423
ar->regiontype= RGN_TYPE_WINDOW;
422
ar->regiontype = RGN_TYPE_WINDOW;
425
424
return (SpaceLink *)simage;
510
510
WM_keymap_add_item(keymap, "IMAGE_OT_cycle_render_slot", JKEY, KM_PRESS, 0, 0);
511
511
RNA_boolean_set(WM_keymap_add_item(keymap, "IMAGE_OT_cycle_render_slot", JKEY, KM_PRESS, KM_ALT, 0)->ptr, "reverse", TRUE);
513
keymap= WM_keymap_find(keyconf, "Image", SPACE_IMAGE, 0);
513
keymap = WM_keymap_find(keyconf, "Image", SPACE_IMAGE, 0);
515
515
WM_keymap_add_item(keymap, "IMAGE_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
516
516
WM_keymap_add_item(keymap, "IMAGE_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
541
541
RNA_enum_set(WM_keymap_add_item(keymap, "IMAGE_OT_curves_point_set", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "point", 1);
543
543
/* toggle editmode is handy to have while UV unwrapping */
544
kmi= WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
544
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
545
545
RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT);
546
546
RNA_boolean_set(kmi->ptr, "toggle", TRUE);
548
/* fast switch to render slots */
549
for (i = 0; i < MAX2(IMA_MAX_RENDER_SLOT, 9); i++) {
550
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_int", ONEKEY+i, KM_PRESS, 0, 0);
551
RNA_string_set(kmi->ptr, "data_path", "space_data.image.render_slot");
552
RNA_int_set(kmi->ptr, "value", i);
550
557
static int image_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
552
if(drag->type==WM_DRAG_PATH)
553
if(ELEM3(drag->icon, 0, ICON_FILE_IMAGE, ICON_FILE_BLANK)) /* rule might not work? */
559
if (drag->type == WM_DRAG_PATH)
560
if (ELEM3(drag->icon, 0, ICON_FILE_IMAGE, ICON_FILE_BLANK)) /* rule might not work? */
574
581
static void image_refresh(const bContext *C, ScrArea *UNUSED(sa))
576
583
Scene *scene = CTX_data_scene(C);
577
SpaceImage *sima= CTX_wm_space_image(C);
578
Object *obedit= CTX_data_edit_object(C);
584
SpaceImage *sima = CTX_wm_space_image(C);
585
Object *obedit = CTX_data_edit_object(C);
581
ima= ED_space_image(sima);
588
ima = ED_space_image(sima);
583
if(sima->iuser.flag & IMA_ANIM_ALWAYS)
590
if (sima->iuser.flag & IMA_ANIM_ALWAYS)
584
591
BKE_image_user_calc_frame(&sima->iuser, scene->r.cfra, 0);
586
593
/* check if we have to set the image from the editmesh */
587
if(ima && (ima->source==IMA_SRC_VIEWER || sima->pin));
588
else if(obedit && obedit->type == OB_MESH) {
589
Mesh *me= (Mesh*)obedit->data;
590
EditMesh *em= BKE_mesh_get_editmesh(me);
591
int sloppy= 1; /* partially selected face is ok */
594
if (ima && (ima->source == IMA_SRC_VIEWER || sima->pin)) ;
595
else if (obedit && obedit->type == OB_MESH) {
596
Mesh *me = (Mesh *)obedit->data;
597
struct BMEditMesh *em = me->edit_btmesh;
598
int sloppy = 1; /* partially selected face is ok */
593
if(scene_use_new_shading_nodes(scene)) {
600
if (scene_use_new_shading_nodes(scene)) {
594
601
/* new shading system, get image from material */
595
EditFace *efa= EM_get_actFace(em, sloppy);
602
BMFace *efa = BM_active_face_get(em->bm, sloppy);
599
ED_object_get_active_image(obedit, efa->mat_nr, &node_ima, NULL, NULL);
606
ED_object_get_active_image(obedit, efa->mat_nr + 1, &node_ima, NULL, NULL);
602
sima->image= node_ima;
609
sima->image = node_ima;
606
613
/* old shading system, we set texface */
609
if(em && EM_texFaceCheck(em)) {
612
tf = EM_get_active_mtface(em, NULL, NULL, sloppy);
616
if (em && EDBM_mtexpoly_check(em)) {
619
tf = EDBM_mtexpoly_active_get(em, NULL, TRUE); /* partially selected face is ok */
615
622
/* don't need to check for pin here, see above */
616
sima->image= tf->tpage;
623
sima->image = tf->tpage;
618
if(sima->flag & SI_EDITTILE);
619
else sima->curtile= tf->tile;
625
if (sima->flag & SI_EDITTILE) ;
626
else sima->curtile = tf->tile;
624
BKE_mesh_end_editmesh(obedit->data, em);
628
633
static void image_listener(ScrArea *sa, wmNotifier *wmn)
630
SpaceImage *sima= (SpaceImage *)sa->spacedata.first;
635
SpaceImage *sima = (SpaceImage *)sa->spacedata.first;
632
637
/* context changes */
633
switch(wmn->category) {
638
switch (wmn->category) {
637
642
image_scopes_tag_refresh(sa);
638
643
ED_area_tag_refresh(sa);
708
713
/* sets up the fields of the View2D from zoom and offset */
709
714
static void image_main_area_set_view2d(SpaceImage *sima, ARegion *ar)
711
Image *ima= ED_space_image(sima);
716
Image *ima = ED_space_image(sima);
712
717
float x1, y1, w, h;
713
718
int width, height, winx, winy;
716
if(image_preview_active(curarea, &width, &height));
721
if (image_preview_active(curarea, &width, &height)) ;
719
724
ED_space_image_size(sima, &width, &height);
725
h *= ima->aspy/ima->aspx;
730
h *= ima->aspy / ima->aspx;
727
winx= ar->winrct.xmax - ar->winrct.xmin + 1;
728
winy= ar->winrct.ymax - ar->winrct.ymin + 1;
732
winx = ar->winrct.xmax - ar->winrct.xmin + 1;
733
winy = ar->winrct.ymax - ar->winrct.ymin + 1;
735
ar->v2d.tot.xmin = 0;
736
ar->v2d.tot.ymin = 0;
737
ar->v2d.tot.xmax = w;
738
ar->v2d.tot.ymax = h;
735
ar->v2d.mask.xmin= ar->v2d.mask.ymin= 0;
736
ar->v2d.mask.xmax= winx;
737
ar->v2d.mask.ymax= winy;
740
ar->v2d.mask.xmin = ar->v2d.mask.ymin = 0;
741
ar->v2d.mask.xmax = winx;
742
ar->v2d.mask.ymax = winy;
739
744
/* which part of the image space do we see? */
740
x1= ar->winrct.xmin+(winx-sima->zoom*w)/2.0f;
741
y1= ar->winrct.ymin+(winy-sima->zoom*h)/2.0f;
745
x1 = ar->winrct.xmin + (winx - sima->zoom * w) / 2.0f;
746
y1 = ar->winrct.ymin + (winy - sima->zoom * h) / 2.0f;
743
x1-= sima->zoom*sima->xof;
744
y1-= sima->zoom*sima->yof;
748
x1 -= sima->zoom * sima->xof;
749
y1 -= sima->zoom * sima->yof;
746
751
/* relative display right */
747
ar->v2d.cur.xmin= ((ar->winrct.xmin - (float)x1)/sima->zoom);
748
ar->v2d.cur.xmax= ar->v2d.cur.xmin + ((float)winx/sima->zoom);
752
ar->v2d.cur.xmin = ((ar->winrct.xmin - (float)x1) / sima->zoom);
753
ar->v2d.cur.xmax = ar->v2d.cur.xmin + ((float)winx / sima->zoom);
750
755
/* relative display left */
751
ar->v2d.cur.ymin= ((ar->winrct.ymin-(float)y1)/sima->zoom);
752
ar->v2d.cur.ymax= ar->v2d.cur.ymin + ((float)winy/sima->zoom);
756
ar->v2d.cur.ymin = ((ar->winrct.ymin - (float)y1) / sima->zoom);
757
ar->v2d.cur.ymax = ar->v2d.cur.ymin + ((float)winy / sima->zoom);
754
759
/* normalize 0.0..1.0 */
755
760
ar->v2d.cur.xmin /= w;
767
772
// UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_STANDARD, ar->winx, ar->winy);
769
774
/* image paint polls for mode */
770
keymap= WM_keymap_find(wm->defaultconf, "Image Paint", 0, 0);
775
keymap = WM_keymap_find(wm->defaultconf, "Image Paint", 0, 0);
771
776
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
773
keymap= WM_keymap_find(wm->defaultconf, "UV Editor", 0, 0);
778
keymap = WM_keymap_find(wm->defaultconf, "UV Editor", 0, 0);
774
779
WM_event_add_keymap_handler(&ar->handlers, keymap);
776
keymap= WM_keymap_find(wm->defaultconf, "UV Sculpt", 0, 0);
781
keymap = WM_keymap_find(wm->defaultconf, "UV Sculpt", 0, 0);
777
782
WM_event_add_keymap_handler(&ar->handlers, keymap);
779
784
/* own keymaps */
780
keymap= WM_keymap_find(wm->defaultconf, "Image Generic", SPACE_IMAGE, 0);
785
keymap = WM_keymap_find(wm->defaultconf, "Image Generic", SPACE_IMAGE, 0);
781
786
WM_event_add_keymap_handler(&ar->handlers, keymap);
782
keymap= WM_keymap_find(wm->defaultconf, "Image", SPACE_IMAGE, 0);
787
keymap = WM_keymap_find(wm->defaultconf, "Image", SPACE_IMAGE, 0);
783
788
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
827
832
draw_image_grease_pencil((bContext *)C, 0);
830
/*scrollers= UI_view2d_scrollers_calc(C, v2d, V2D_UNIT_VALUES, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY);
836
scrollers = UI_view2d_scrollers_calc(C, v2d, V2D_UNIT_VALUES, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY);
831
837
UI_view2d_scrollers_draw(C, v2d, scrollers);
832
UI_view2d_scrollers_free(scrollers);*/
838
UI_view2d_scrollers_free(scrollers);
835
842
static void image_main_area_listener(ARegion *ar, wmNotifier *wmn)
837
844
/* context changes */
838
switch(wmn->category) {
845
switch (wmn->category) {
840
if (wmn->data==ND_GPENCIL)
847
if (wmn->data == ND_GPENCIL)
841
848
ED_region_tag_redraw(ar);
886
899
ED_region_panels_init(wm, ar);
888
keymap= WM_keymap_find(wm->defaultconf, "Image Generic", SPACE_IMAGE, 0);
901
keymap = WM_keymap_find(wm->defaultconf, "Image Generic", SPACE_IMAGE, 0);
889
902
WM_event_add_keymap_handler(&ar->handlers, keymap);
892
905
static void image_scope_area_draw(const bContext *C, ARegion *ar)
894
SpaceImage *sima= CTX_wm_space_image(C);
895
Scene *scene= CTX_data_scene(C);
907
SpaceImage *sima = CTX_wm_space_image(C);
908
Scene *scene = CTX_data_scene(C);
897
ImBuf *ibuf= ED_space_image_acquire_buffer(sima, &lock);
899
scopes_update(&sima->scopes, ibuf, scene->r.color_mgt_flag & R_COLOR_MANAGEMENT );
910
ImBuf *ibuf = ED_space_image_acquire_buffer(sima, &lock);
912
scopes_update(&sima->scopes, ibuf, scene->r.color_mgt_flag & R_COLOR_MANAGEMENT);
901
914
ED_space_image_release_buffer(sima, lock);
967
980
/* only called once, from space/spacetypes.c */
968
981
void ED_spacetype_image(void)
970
SpaceType *st= MEM_callocN(sizeof(SpaceType), "spacetype image");
983
SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype image");
971
984
ARegionType *art;
973
st->spaceid= SPACE_IMAGE;
986
st->spaceid = SPACE_IMAGE;
974
987
strncpy(st->name, "Image", BKE_ST_MAXNAME);
977
st->free= image_free;
978
st->init= image_init;
979
st->duplicate= image_duplicate;
980
st->operatortypes= image_operatortypes;
981
st->keymap= image_keymap;
982
st->dropboxes= image_dropboxes;
983
st->refresh= image_refresh;
984
st->listener= image_listener;
985
st->context= image_context;
990
st->free = image_free;
991
st->init = image_init;
992
st->duplicate = image_duplicate;
993
st->operatortypes = image_operatortypes;
994
st->keymap = image_keymap;
995
st->dropboxes = image_dropboxes;
996
st->refresh = image_refresh;
997
st->listener = image_listener;
998
st->context = image_context;
987
1000
/* regions: main window */
988
art= MEM_callocN(sizeof(ARegionType), "spacetype image region");
1001
art = MEM_callocN(sizeof(ARegionType), "spacetype image region");
989
1002
art->regionid = RGN_TYPE_WINDOW;
990
art->keymapflag= ED_KEYMAP_FRAMES|ED_KEYMAP_GPENCIL;
991
art->init= image_main_area_init;
992
art->draw= image_main_area_draw;
993
art->listener= image_main_area_listener;
1003
art->keymapflag = ED_KEYMAP_FRAMES | ED_KEYMAP_GPENCIL;
1004
art->init = image_main_area_init;
1005
art->draw = image_main_area_draw;
1006
art->listener = image_main_area_listener;
995
1008
BLI_addhead(&st->regiontypes, art);
997
1010
/* regions: listview/buttons */
998
art= MEM_callocN(sizeof(ARegionType), "spacetype image region");
1011
art = MEM_callocN(sizeof(ARegionType), "spacetype image region");
999
1012
art->regionid = RGN_TYPE_UI;
1000
art->prefsizex= 220; // XXX
1001
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_FRAMES;
1002
art->listener= image_buttons_area_listener;
1003
art->init= image_buttons_area_init;
1004
art->draw= image_buttons_area_draw;
1013
art->prefsizex = 220; // XXX
1014
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_FRAMES;
1015
art->listener = image_buttons_area_listener;
1016
art->init = image_buttons_area_init;
1017
art->draw = image_buttons_area_draw;
1005
1018
BLI_addhead(&st->regiontypes, art);
1007
1020
image_buttons_register(art);
1008
1021
ED_uvedit_buttons_register(art);
1010
1023
/* regions: statistics/scope buttons */
1011
art= MEM_callocN(sizeof(ARegionType), "spacetype image region");
1024
art = MEM_callocN(sizeof(ARegionType), "spacetype image region");
1012
1025
art->regionid = RGN_TYPE_PREVIEW;
1013
art->prefsizex= 220; // XXX
1014
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_FRAMES;
1015
art->listener= image_scope_area_listener;
1016
art->init= image_scope_area_init;
1017
art->draw= image_scope_area_draw;
1026
art->prefsizex = 220; // XXX
1027
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_FRAMES;
1028
art->listener = image_scope_area_listener;
1029
art->init = image_scope_area_init;
1030
art->draw = image_scope_area_draw;
1018
1031
BLI_addhead(&st->regiontypes, art);
1020
1033
/* regions: header */
1021
art= MEM_callocN(sizeof(ARegionType), "spacetype image region");
1034
art = MEM_callocN(sizeof(ARegionType), "spacetype image region");
1022
1035
art->regionid = RGN_TYPE_HEADER;
1023
art->prefsizey= HEADERY;
1024
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES|ED_KEYMAP_HEADER;
1025
art->listener= image_header_area_listener;
1026
art->init= image_header_area_init;
1027
art->draw= image_header_area_draw;
1036
art->prefsizey = HEADERY;
1037
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_VIEW2D | ED_KEYMAP_FRAMES | ED_KEYMAP_HEADER;
1038
art->listener = image_header_area_listener;
1039
art->init = image_header_area_init;
1040
art->draw = image_header_area_draw;
1029
1042
BLI_addhead(&st->regiontypes, art);