Revision: 23285 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23285 Author: blendix Date: 2009-09-16 20:47:42 +0200 (Wed, 16 Sep 2009)
Log Message: ----------- UI * Fix problem with curve mapping / color ramps not updating things like previews propertly. Now it uses the RNA update of the pointer from the material/texture/.. so each of those can define their own update, but still share the RNA struct. * Code for these templates is now in interface_templates.c * Fix exception for "axis" property, now it always shows normal widget with the PROP_DIRECTION subtype. * Remove context from uiBlockLayoutResolve, no longer needed. Modified Paths: -------------- trunk/blender/release/ui/buttons_data_lamp.py trunk/blender/release/ui/buttons_material.py trunk/blender/release/ui/buttons_scene.py trunk/blender/release/ui/buttons_texture.py trunk/blender/release/ui/space_userpref.py trunk/blender/release/ui/space_view3d_toolbar.py trunk/blender/source/blender/editors/include/UI_interface.h trunk/blender/source/blender/editors/interface/interface.c trunk/blender/source/blender/editors/interface/interface_handlers.c trunk/blender/source/blender/editors/interface/interface_intern.h trunk/blender/source/blender/editors/interface/interface_layout.c trunk/blender/source/blender/editors/interface/interface_regions.c trunk/blender/source/blender/editors/interface/interface_templates.c trunk/blender/source/blender/editors/screen/area.c trunk/blender/source/blender/editors/space_action/action_header.c trunk/blender/source/blender/makesrna/intern/rna_ui_api.c Modified: trunk/blender/release/ui/buttons_data_lamp.py =================================================================== --- trunk/blender/release/ui/buttons_data_lamp.py 2009-09-16 18:32:10 UTC (rev 23284) +++ trunk/blender/release/ui/buttons_data_lamp.py 2009-09-16 18:47:42 UTC (rev 23285) @@ -301,7 +301,7 @@ def draw(self, context): lamp = context.lamp - self.layout.template_curve_mapping(lamp.falloff_curve) + self.layout.template_curve_mapping(lamp, "falloff_curve") bpy.types.register(DATA_PT_context_lamp) bpy.types.register(DATA_PT_preview) Modified: trunk/blender/release/ui/buttons_material.py =================================================================== --- trunk/blender/release/ui/buttons_material.py 2009-09-16 18:32:10 UTC (rev 23284) +++ trunk/blender/release/ui/buttons_material.py 2009-09-16 18:47:42 UTC (rev 23285) @@ -28,7 +28,7 @@ # this manages materials for all engine types engine = context.scene.render_data.engine - return (context.object) and (engine in self.COMPAT_ENGINES) + return (context.material or context.object) and (engine in self.COMPAT_ENGINES) def draw(self, context): layout = self.layout @@ -282,7 +282,7 @@ if mat.use_diffuse_ramp: layout.itemS() - layout.template_color_ramp(mat.diffuse_ramp, expand=True) + layout.template_color_ramp(mat, "diffuse_ramp", expand=True) layout.itemS() row = layout.row() split = row.split(percentage=0.3) @@ -334,7 +334,7 @@ if mat.use_specular_ramp: layout.itemS() - layout.template_color_ramp(mat.specular_ramp, expand=True) + layout.template_color_ramp(mat, "specular_ramp", expand=True) layout.itemS() row = layout.row() split = row.split(percentage=0.3) Modified: trunk/blender/release/ui/buttons_scene.py =================================================================== --- trunk/blender/release/ui/buttons_scene.py 2009-09-16 18:32:10 UTC (rev 23284) +++ trunk/blender/release/ui/buttons_scene.py 2009-09-16 18:47:42 UTC (rev 23285) @@ -240,7 +240,8 @@ split = layout.split() col = split.column() - col.itemR(rd, "exr_codec") + col.itemL(text="Codec:") + col.itemR(rd, "exr_codec", text="") subsplit = split.split() col = subsplit.column() Modified: trunk/blender/release/ui/buttons_texture.py =================================================================== --- trunk/blender/release/ui/buttons_texture.py 2009-09-16 18:32:10 UTC (rev 23284) +++ trunk/blender/release/ui/buttons_texture.py 2009-09-16 18:47:42 UTC (rev 23285) @@ -96,7 +96,7 @@ layout.itemR(tex, "use_color_ramp", text="Ramp") if tex.use_color_ramp: - layout.template_color_ramp(tex.color_ramp, expand=True) + layout.template_color_ramp(tex, "color_ramp", expand=True) split = layout.split() @@ -410,10 +410,10 @@ def draw(self, context): layout = self.layout - + tex = context.texture - layout.template_texture_image(tex) + layout.template_image(tex, "image", tex.image_user) class TEXTURE_PT_image_sampling(TextureTypePanel): __label__ = "Image Sampling" @@ -689,7 +689,7 @@ if pd.color_source in ('PARTICLE_SPEED', 'PARTICLE_VELOCITY'): col.itemR(pd, "speed_scale") if pd.color_source in ('PARTICLE_SPEED', 'PARTICLE_AGE'): - layout.template_color_ramp(pd.color_ramp, expand=True) + layout.template_color_ramp(pd, "color_ramp", expand=True) col = split.column() col.itemL() Modified: trunk/blender/release/ui/space_userpref.py =================================================================== --- trunk/blender/release/ui/space_userpref.py 2009-09-16 18:32:10 UTC (rev 23284) +++ trunk/blender/release/ui/space_userpref.py 2009-09-16 18:47:42 UTC (rev 23285) @@ -264,7 +264,7 @@ sub2 = sub1.column() sub2.active = system.use_weight_color_range - sub2.template_color_ramp(system.weight_color_range, expand=True) + sub2.template_color_ramp(system, "weight_color_range", expand=True) sub1.itemS() sub1.itemS() Modified: trunk/blender/release/ui/space_view3d_toolbar.py =================================================================== --- trunk/blender/release/ui/space_view3d_toolbar.py 2009-09-16 18:32:10 UTC (rev 23284) +++ trunk/blender/release/ui/space_view3d_toolbar.py 2009-09-16 18:47:42 UTC (rev 23285) @@ -422,7 +422,7 @@ row.itemR(brush, "strength", slider=True) row.itemR(brush, "strength_pressure", toggle=True, text="") - col.itemR(brush, "blend") + col.itemR(brush, "blend", text="Blend") # Weight Paint Mode # @@ -508,7 +508,7 @@ settings = self.paint_settings(context) brush = settings.brush - layout.template_curve_mapping(brush.curve) + layout.template_curve_mapping(brush, "curve") layout.item_menu_enumO("brush.curve_preset", property="shape") class VIEW3D_PT_sculpt_options(PaintPanel): Modified: trunk/blender/source/blender/editors/include/UI_interface.h =================================================================== --- trunk/blender/source/blender/editors/include/UI_interface.h 2009-09-16 18:32:10 UTC (rev 23284) +++ trunk/blender/source/blender/editors/include/UI_interface.h 2009-09-16 18:47:42 UTC (rev 23285) @@ -487,6 +487,7 @@ void uiBlockSetHandleFunc(uiBlock *block, uiBlockHandleFunc func, void *arg); void uiBlockSetButmFunc (uiBlock *block, uiMenuHandleFunc func, void *arg); void uiBlockSetFunc (uiBlock *block, uiButHandleFunc func, void *arg1, void *arg2); +void uiBlockSetNFunc (uiBlock *block, uiButHandleFunc func, void *argN, void *arg2); void uiButSetRenameFunc (uiBut *but, uiButHandleRenameFunc func, void *arg1); void uiButSetFunc (uiBut *but, uiButHandleFunc func, void *arg1, void *arg2); @@ -596,7 +597,7 @@ uiLayout *uiBlockLayout(uiBlock *block, int dir, int type, int x, int y, int size, int em, struct uiStyle *style); void uiBlockSetCurLayout(uiBlock *block, uiLayout *layout); -void uiBlockLayoutResolve(const struct bContext *C, uiBlock *block, int *x, int *y); +void uiBlockLayoutResolve(uiBlock *block, int *x, int *y); uiBlock *uiLayoutGetBlock(uiLayout *layout); @@ -641,10 +642,11 @@ uiLayout *uiTemplateModifier(uiLayout *layout, struct PointerRNA *ptr); uiLayout *uiTemplateConstraint(uiLayout *layout, struct PointerRNA *ptr); void uiTemplatePreview(uiLayout *layout, struct ID *id, struct ID *parent, struct MTex *slot); -void uiTemplateColorRamp(uiLayout *layout, struct ColorBand *coba, int expand); -void uiTemplateCurveMapping(uiLayout *layout, struct CurveMapping *cumap, int type, int compact); +void uiTemplateColorRamp(uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand); +void uiTemplateCurveMapping(uiLayout *layout, struct PointerRNA *ptr, char *propname, int type, int levels); void uiTemplateTriColorSet(uiLayout *layout, struct PointerRNA *ptr, char *propname); void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, char *propname); +void uiTemplateImage(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, struct PointerRNA *userptr, int compact); void uiTemplateImageLayers(uiLayout *layout, struct bContext *C, struct Image *ima, struct ImageUser *iuser); void uiTemplateRunningJobs(uiLayout *layout, struct bContext *C); void uiTemplateOperatorSearch(uiLayout *layout); Modified: trunk/blender/source/blender/editors/interface/interface.c =================================================================== --- trunk/blender/source/blender/editors/interface/interface.c 2009-09-16 18:32:10 UTC (rev 23284) +++ trunk/blender/source/blender/editors/interface/interface.c 2009-09-16 18:47:42 UTC (rev 23285) @@ -622,7 +622,7 @@ } /* handle pending stuff */ - if(block->layouts.first) uiBlockLayoutResolve(C, block, NULL, NULL); + if(block->layouts.first) uiBlockLayoutResolve(block, NULL, NULL); ui_block_do_align(block); if(block->flag & UI_BLOCK_LOOP) ui_menu_block_set_keymaps(C, block); @@ -1684,6 +1684,9 @@ ui_free_but(C, but); } + if(block->func_argN) + MEM_freeN(block->func_argN); + CTX_store_free_list(&block->contexts); BLI_freelistN(&block->saferct); @@ -2232,6 +2235,10 @@ but->func= block->func; but->func_arg1= block->func_arg1; but->func_arg2= block->func_arg2; + + but->funcN= block->funcN; + if(block->func_argN) + but->func_argN= MEM_dupallocN(block->func_argN); but->pos= -1; /* cursor invisible */ @@ -2945,6 +2952,16 @@ block->func_arg2= arg2; } +void uiBlockSetNFunc(uiBlock *block, uiButHandleFunc func, void *argN, void *arg2) +{ + if(block->func_argN) + MEM_freeN(block->func_argN); + + block->funcN= func; + block->func_argN= argN; + block->func_arg2= arg2; +} + void uiButSetRenameFunc(uiBut *but, uiButHandleRenameFunc func, void *arg1) { but->rename_func= func; @@ -2967,6 +2984,9 @@ void uiButSetNFunc(uiBut *but, uiButHandleNFunc funcN, void *argN, void *arg2) { + if(but->func_argN) + MEM_freeN(but->func_argN); + but->funcN= funcN; but->func_argN= argN; but->func_arg2= arg2; @@ -3003,6 +3023,8 @@ { uiBut *but= ui_def_but(block, BLOCK, 0, str, x1, y1, x2, y2, NULL, 0.0, 0.0, 0.0, 0.0, tip); but->block_create_func= func; + if(but->func_argN) + MEM_freeN(but->func_argN); but->func_argN= argN; ui_check_but(but); return but; Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c =================================================================== --- trunk/blender/source/blender/editors/interface/interface_handlers.c 2009-09-16 18:32:10 UTC (rev 23284) +++ trunk/blender/source/blender/editors/interface/interface_handlers.c 2009-09-16 18:47:42 UTC (rev 23285) @@ -246,7 +246,13 @@ if(but->func || but->funcN || block->handle_func || but->rename_func || (but->type == BUTM && block->butm_func) || but->optype || but->rnaprop) { after= MEM_callocN(sizeof(uiAfterFunc), "uiAfterFunc"); - after->func= but->func; + if(ELEM(but, but->func_arg1, but->func_arg2)) { + /* exception, this will crash due to removed button otherwise */ + but->func(C, but->func_arg1, but->func_arg2); + } + else + after->func= but->func; + after->func_arg1= but->func_arg1; after->func_arg2= but->func_arg2; after->func_arg3= but->func_arg3; Modified: trunk/blender/source/blender/editors/interface/interface_intern.h =================================================================== --- trunk/blender/source/blender/editors/interface/interface_intern.h 2009-09-16 18:32:10 UTC (rev 23284) @@ 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