[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23285] trunk/blender: UI

Brecht Van Lommel brecht at blender.org
Wed Sep 16 20:47:45 CEST 2009


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. @@




More information about the Bf-blender-cvs mailing list