Revision: 23287 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23287 Author: blendix Date: 2009-09-16 21:27:08 +0200 (Wed, 16 Sep 2009)
Log Message: ----------- Image Panels * The image panels in the image editor and texture buttons should be more complete now, with working new/open, refreshes, and using the layout engine. * Paint panels in image editor are now consistent with the ones in the 3d view toolbar. * Curves panel also uses layout engine, and doesn't look squashed anymore. Modified Paths: -------------- trunk/blender/release/ui/space_image.py trunk/blender/source/blender/blenkernel/intern/image.c trunk/blender/source/blender/blenkernel/intern/paint.c trunk/blender/source/blender/editors/include/ED_image.h trunk/blender/source/blender/editors/interface/interface_templates.c trunk/blender/source/blender/editors/space_image/image_buttons.c trunk/blender/source/blender/editors/space_image/image_ops.c trunk/blender/source/blender/editors/uvedit/uvedit_ops.c trunk/blender/source/blender/makesrna/intern/rna_color.c trunk/blender/source/blender/makesrna/intern/rna_image.c trunk/blender/source/blender/makesrna/intern/rna_space.c trunk/blender/source/blender/makesrna/intern/rna_texture.c trunk/blender/source/blender/makesrna/intern/rna_ui_api.c Modified: trunk/blender/release/ui/space_image.py =================================================================== --- trunk/blender/release/ui/space_image.py 2009-09-16 18:59:13 UTC (rev 23286) +++ trunk/blender/release/ui/space_image.py 2009-09-16 19:27:08 UTC (rev 23287) @@ -277,6 +277,24 @@ if show_uvedit or sima.image_painting: layout.itemR(sima, "update_automatically", text="") +class IMAGE_PT_image_properties(bpy.types.Panel): + __space_type__ = 'IMAGE_EDITOR' + __region_type__ = 'UI' + __label__ = "Image" + + def poll(self, context): + sima = context.space_data + return (sima.image) + + def draw(self, context): + layout = self.layout + + sima = context.space_data + ima = sima.image + iuser = sima.image_user + + layout.template_image(sima, "image", iuser, compact=True) + class IMAGE_PT_game_properties(bpy.types.Panel): __space_type__ = 'IMAGE_EDITOR' __region_type__ = 'UI' @@ -368,6 +386,92 @@ #col.itemR(uvedit, "draw_edges") #col.itemR(uvedit, "draw_faces") +class IMAGE_PT_paint(bpy.types.Panel): + __space_type__ = 'IMAGE_EDITOR' + __region_type__ = 'UI' + __label__ = "Paint" + + def poll(self, context): + sima = context.space_data + return sima.show_paint + + def draw(self, context): + layout = self.layout + + settings = context.tool_settings.image_paint + brush = settings.brush + + col = layout.split().column() + row = col.row() + row.template_list(settings, "brushes", settings, "active_brush_index", rows=2) + + col.template_ID(settings, "brush", new="brush.add") + + row = layout.row(align=True) + row.item_enumR(settings, "tool", 'DRAW') + row.item_enumR(settings, "tool", 'SOFTEN') + row.item_enumR(settings, "tool", 'CLONE') + row.item_enumR(settings, "tool", 'SMEAR') + + col = layout.column() + col.itemR(brush, "color", text="") + + row = col.row(align=True) + row.itemR(brush, "size", slider=True) + row.itemR(brush, "size_pressure", toggle=True, text="") + + row = col.row(align=True) + row.itemR(brush, "strength", slider=True) + row.itemR(brush, "strength_pressure", toggle=True, text="") + + col.itemR(brush, "blend", text="Blend") + +class IMAGE_PT_paint_stroke(bpy.types.Panel): + __space_type__ = 'IMAGE_EDITOR' + __region_type__ = 'UI' + __label__ = "Paint Stroke" + __default_closed__ = True + + def poll(self, context): + sima = context.space_data + return sima.show_paint + + def draw(self, context): + layout = self.layout + + settings = context.tool_settings.image_paint + brush = settings.brush + + layout.itemR(brush, "airbrush") + col = layout.column() + col.active = brush.airbrush + col.itemR(brush, "rate", slider=True) + + layout.itemR(brush, "space") + row = layout.row(align=True) + row.active = brush.space + row.itemR(brush, "spacing", text="Distance", slider=True) + row.itemR(brush, "spacing_pressure", toggle=True, text="") + +class IMAGE_PT_paint_curve(bpy.types.Panel): + __space_type__ = 'IMAGE_EDITOR' + __region_type__ = 'UI' + __label__ = "Paint Curve" + __default_closed__ = True + + def poll(self, context): + sima = context.space_data + return sima.show_paint + + def draw(self, context): + layout = self.layout + + settings = context.tool_settings.image_paint + brush = settings.brush + + layout.template_curve_mapping(brush, "curve") + layout.item_menu_enumO("brush.curve_preset", property="shape") + bpy.types.register(IMAGE_MT_view) bpy.types.register(IMAGE_MT_select) bpy.types.register(IMAGE_MT_image) @@ -377,5 +481,10 @@ bpy.types.register(IMAGE_MT_uvs_weldalign) bpy.types.register(IMAGE_MT_uvs) bpy.types.register(IMAGE_HT_header) +bpy.types.register(IMAGE_PT_image_properties) +bpy.types.register(IMAGE_PT_paint) +bpy.types.register(IMAGE_PT_paint_stroke) +bpy.types.register(IMAGE_PT_paint_curve) bpy.types.register(IMAGE_PT_game_properties) bpy.types.register(IMAGE_PT_view_properties) + Modified: trunk/blender/source/blender/blenkernel/intern/image.c =================================================================== --- trunk/blender/source/blender/blenkernel/intern/image.c 2009-09-16 18:59:13 UTC (rev 23286) +++ trunk/blender/source/blender/blenkernel/intern/image.c 2009-09-16 19:27:08 UTC (rev 23287) @@ -277,7 +277,7 @@ ima->xrep= ima->yrep= 1; ima->aspx= ima->aspy= 1.0; - ima->gen_x= 256; ima->gen_y= 256; + ima->gen_x= 1024; ima->gen_y= 1024; ima->gen_type= 1; /* no defines yet? */ ima->source= source; @@ -1472,9 +1472,11 @@ iuser->ok= 1; break; case IMA_SIGNAL_SRC_CHANGE: - if(ima->type==IMA_TYPE_MULTILAYER) - image_free_buffers(ima); - else if(ima->source==IMA_SRC_GENERATED) { + if(ima->type == IMA_TYPE_UV_TEST) + if(ima->source != IMA_SRC_GENERATED) + ima->type= IMA_TYPE_IMAGE; + + if(ima->source==IMA_SRC_GENERATED) { if(ima->gen_x==0 || ima->gen_y==0) { ImBuf *ibuf= image_get_ibuf(ima, IMA_NO_INDEX, 0); if(ibuf) { @@ -1483,6 +1485,9 @@ } } } + + image_free_buffers(ima); + ima->ok= 1; if(iuser) iuser->ok= 1; @@ -2090,8 +2095,8 @@ else if(ima->source == IMA_SRC_GENERATED) { /* generated is: ibuf is allocated dynamically */ /* UV testgrid or black or solid etc */ - if(ima->gen_x==0) ima->gen_x= 256; - if(ima->gen_y==0) ima->gen_y= 256; + if(ima->gen_x==0) ima->gen_x= 1024; + if(ima->gen_y==0) ima->gen_y= 1024; ibuf= add_ibuf_size(ima->gen_x, ima->gen_y, ima->name, 0, ima->gen_type, color); image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0); ima->ok= IMA_OK_LOADED; Modified: trunk/blender/source/blender/blenkernel/intern/paint.c =================================================================== --- trunk/blender/source/blender/blenkernel/intern/paint.c 2009-09-16 18:59:13 UTC (rev 23286) +++ trunk/blender/source/blender/blenkernel/intern/paint.c 2009-09-16 19:27:08 UTC (rev 23287) @@ -46,19 +46,24 @@ Paint *paint_get_active(Scene *sce) { - if(sce && sce->basact && sce->basact->object) { + if(sce) { ToolSettings *ts = sce->toolsettings; + + if(sce->basact && sce->basact->object) { + switch(sce->basact->object->mode) { + case OB_MODE_SCULPT: + return &ts->sculpt->paint; + case OB_MODE_VERTEX_PAINT: + return &ts->vpaint->paint; + case OB_MODE_WEIGHT_PAINT: + return &ts->wpaint->paint; + case OB_MODE_TEXTURE_PAINT: + return &ts->imapaint.paint; + } + } - switch(sce->basact->object->mode) { - case OB_MODE_SCULPT: - return &ts->sculpt->paint; - case OB_MODE_VERTEX_PAINT: - return &ts->vpaint->paint; - case OB_MODE_WEIGHT_PAINT: - return &ts->wpaint->paint; - case OB_MODE_TEXTURE_PAINT: - return &ts->imapaint.paint; - } + /* default to image paint */ + return &ts->imapaint.paint; } return NULL; Modified: trunk/blender/source/blender/editors/include/ED_image.h =================================================================== --- trunk/blender/source/blender/editors/include/ED_image.h 2009-09-16 18:59:13 UTC (rev 23286) +++ trunk/blender/source/blender/editors/include/ED_image.h 2009-09-16 19:27:08 UTC (rev 23287) @@ -53,9 +53,6 @@ int ED_space_image_show_uvedit(struct SpaceImage *sima, struct Object *obedit); int ED_space_image_show_uvshadow(struct SpaceImage *sima, struct Object *obedit); -void ED_image_uiblock_panel(const struct bContext *C, struct uiBlock *block, struct Image **ima_pp, - struct ImageUser *iuser, short redraw, short imagechanged); - /* image_render.c, export for screen_ops.c, render operator */ void ED_space_image_output(struct bContext *C); Modified: trunk/blender/source/blender/editors/interface/interface_templates.c =================================================================== --- trunk/blender/source/blender/editors/interface/interface_templates.c 2009-09-16 18:59:13 UTC (rev 23286) +++ trunk/blender/source/blender/editors/interface/interface_templates.c 2009-09-16 19:27:08 UTC (rev 23287) @@ -2125,17 +2125,4 @@ uiDefIconTextBut(block, BUT, B_STOPANIM, ICON_REC, "Anim Player", 0,0,85,UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "Stop animation playback"); } -/************************* Image Template **************************/ -#include "ED_image.h" - -void uiTemplateTextureImage(uiLayout *layout, bContext *C, Tex *tex) -{ - uiBlock *block; - - if(tex) { - block= uiLayoutFreeBlock(layout); - ED_image_uiblock_panel(C, block, &tex->ima, &tex->iuser, 0, 0); - } -} - Modified: trunk/blender/source/blender/editors/space_image/image_buttons.c =================================================================== --- trunk/blender/source/blender/editors/space_image/image_buttons.c 2009-09-16 18:59:13 UTC (rev 23286) +++ trunk/blender/source/blender/editors/space_image/image_buttons.c 2009-09-16 19:27:08 UTC (rev 23287) @@ -100,8 +100,6 @@ #define B_FACESEL_PAINT_TEST 11 #define B_SIMA_RECORD 12 #define B_SIMA_PLAY 13 -#define B_SIMARANGE 14 -#define B_SIMACURVES 15 #define B_SIMANOTHING 16 #define B_SIMABRUSHCHANGE 17 @@ -116,10 +114,8 @@ #define B_SIMACLONEDELETE 26 /* XXX */ -static int okee() {return 0;} static int simaFaceDraw_Check() {return 0;} static int simaUVSel_Check() {return 0;} -static int is_uv_tface_editing_allowed_silent() {return 0;} /* XXX */ /* proto */ @@ -135,13 +131,6 @@ switch(event) { case B_REDR: break; - case B_SIMACURVES: - curvemapping_do_ibuf(sima->cumap, ED_space_image_buffer(sima)); - break; - case B_SIMARANGE: - curvemapping_set_black_white(sima->cumap, NULL, NULL); - curvemapping_do_ibuf(sima->cumap, ED_space_image_buffer(sima)); - break; case B_TRANS_IMAGE: image_editvertex_buts(C, NULL); break; @@ -149,12 +138,11 @@ image_editcursor_buts(C, &ar->v2d, NULL); break; } + /* all events now */ WM_event_add_notifier(C, NC_IMAGE, sima->image); } - - static void image_info(Image *ima, ImBuf *ibuf, char *str) { int ofs= 0; @@ -168,12 +156,12 @@ } if(ima->source==IMA_SRC_MOVIE) { - ofs= sprintf(str, "Movie "); + ofs= sprintf(str, "Movie"); if(ima->anim) ofs+= sprintf(str+ofs, "%d frs", IMB_anim_get_duration(ima->anim)); } else - ofs= sprintf(str, "Image "); + ofs= sprintf(str, "Image"); ofs+= sprintf(str+ofs, ": size %d x %d,", ibuf->x, ibuf->y); @@ -246,10 +234,6 @@ EditFace *efa; MTFace *tf; - if(obedit==NULL || obedit->type!=OB_MESH) return; - - if( is_uv_tface_editing_allowed_silent()==0 ) return; - image_transform_but_attr(sima, &imx, &imy, &step, &digits); em= BKE_mesh_get_editmesh((Mesh *)obedit->data); @@ -354,8 +338,6 @@ int imx= 256, imy= 256; int step, digits; @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs